[英]Convert one JSON structure to another using Json.Net
輸入JSON:
{
"name" : "objname",
"abc" : 1,
"def" : 2
}
所需的輸出JSON:
{
"objname" :
{
"abc" : 1,
"def" : 2
}
}
我嘗試如下所示,但是我覺得這不是正確的方法。
// This is the class object
public class Obj
{
public string Name { get;set;}
public string abc { get; set; }
public string def { get; set; }
}
var obj = JsonConvert.DeserializeObject<Obj>(json);
StringBuilder sb = new StringBuilder();
sb.Append(" { ");
sb.AppendLine(obj.Name);
sb.AppendLine(" : {");
sb.AppendLine(GetMemberName(() => obj.abc) + ":" + obj.abc + ",");
sb.AppendLine(GetMemberName(() => obj.def) + ":" + obj.abc);
sb.AppendLine(" : }");
第一步是反序列化。 您可以只去字典:
Dictionary<string, string> dict =
JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
然后,要取回它,您可能還需要使用字典。 由於您不知道屬性名稱,因此無法使用預定義的(甚至編譯器生成的)類。
String name = (string)dict["name"];
// remove name from dictionary
dict.Remove(name);
var output =
new Dictionary<string,object>() {{name, dict}};
然后,將其保存回去:
string json = JsonConvert.SerializeObject(output);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.