将Json转换为明确的新对象,使用C#进行List初始化。

21 浏览
0 Comments

将Json转换为明确的新对象,使用C#进行List初始化。

你好,我想知道是否有一种方法可以将一个JSON对象转换为明确的新对象/列表对象,例如:

将这个:

{

"name":"John",

"age":30,

"cars":[ "Ford", "BMW", "Fiat" ]

}

转换为以下C#代码文本:

new className() {
  Name = "John",
  Age = 30,
  Cars = new List(){"Ford", "BMW", "Fiat" }
 };

我想做的是创建一个等价于JSON代码的C#代码。

0
0 Comments

问题的出现原因是需要将Json转换为具体的新对象,并且需要进行列表初始化。解决方法是使用在线服务或使用JavaScript代码进行转换。

在这个问题中,提供了两种解决方法。首先,可以使用在线服务如https://www.jsonutils.com/来进行转换。其次,可以使用JavaScript代码进行转换,代码如下:

function Convert(jsonStr, classNr) {
  var i = classNr == undefined ? 0 : classNr;
  var str = "";
  var json = JSON.parse(jsonStr);
  for (var prop in json) {
    if (typeof(json[prop]) === "number") {
      if (json[prop] === +json[prop] && json[prop] !== (json[prop] | 0)) {
        str += prop + " = " + json[prop] + "M, ";
      } else {
        str += prop + " = " + json[prop] + ", ";
      }
    } else if (typeof(json[prop]) === "boolean") {
      str += prop + " = " + json[prop] + ", ";
    } else if (typeof(json[prop]) === "string") {
      str += prop + ' = "' + json[prop] + '", ';
    } else if (json[prop] == null || json[prop] == undefined) {
      str += prop + ' = null, ';
    } else if (typeof(json[prop]) === "object") {
      str += prop + " = " + Convert(JSON.stringify(json[prop]), i++) + ", ";
    }
  }
  if (str.endsWith(', ')) {
    str = str.substring(0, str.length - 2);
  }
  return "new Class" + i + "{ " + str + " }";
}

此外,还提供了一个包含HTML和JavaScript代码的示例,用于演示如何将Json转换为具体的新对象,并进行列表初始化。示例代码如下:




以上是解决这个问题的原因和方法。参考来源:https://stackoverflow.com/a/34590681/1932159

0
0 Comments

问题的出现原因是需要将一个Json字符串转换为C#中的显式新对象或列表初始化。

解决方法一是使用Newtonsoft库中的JObject对象。首先,需要引用Newtonsoft库。然后,可以使用JObject的Parse方法将Json字符串解析为JObject对象。最后,使用ToString方法将JObject对象转换为字符串并输出。

解决方法二是使用jsonutils创建一个C#等效类,然后使用Newtonsoft库中的JsonConvert类将Json对象解析为该等效类的实例。首先,需要引用jsonutils库。然后,使用jsonutils创建一个C#等效类,该类与Json字符串的结构相匹配。最后,使用JsonConvert的DeserializeObject方法将Json字符串的内容解析为该等效类的实例。

以上是将Json转换为显式新对象或列表初始化的两种解决方法。

0