我有一个JSON,例如,它可以如下所示:
{
"value":[
{
"Name":"Nik",
"Age":"17",
"Country":"Germany",
},
{
"Name":"Tom",
"Age":"20",
"Country":"Russia",
},
{
"Name":"Sila",
"Age":"12",
"Country":"Switzerland",
}
]
}属性的关键,如“名称”和“年龄”是动态的,可以改变。JSON也可以如下所示:
{
"value":[
{
"Prename":"Nik",
"Age":"17",
"Country":"Germany"
"Car":"Merc"
},
{
"Prename":"Nik",
"Age":"20",
"Country":"Russia"
"Car":"BMW"
},
{
"Prename":"Nik",
"Age":"12",
"Country":"Switzerland",
"Car":"Audi"
}
]
}重要的是结构,这就是我想用Newtonsoft.Json手动构建的。
这是我目前的尝试:
var jArray = new JArray();
jArray.Add("Name");
jArray.Add("Nikola");
jArray.Add("Age");
jArray.Add("17");
jArray.Add("Country");
jArray.Add("Germany");
JObject o = new JObject();
o["Value"] = jArray;
string json = o.ToString();结果:
{
"Value": [
"Name",
"Nikola",
"Age",
"17",
"Country",
"Germany"
]
}我试着用newtonsoft网站的这个例子来解决这个问题,但是正如你所看到的,它真的很糟糕,解释道。
发布于 2021-04-07 10:51:57
您需要像这样将JObject添加到数组中。我想您必须添加任何您想要的条件属性(或其他嵌套对象)。
var jArray = new JArray();
var nik = new JObject();
nik["Name"] = "nik";
nik["Age"] = "17";
nik["Country"] ="Germany";
jArray.Add(nik);
JObject o = new JObject();
o["Value"] = jArray;
string json = o.ToString();根据动态内容的确切性质,您可以使用类似于
var jArray = new JArray
{
new JObject {["Name"] = "nik", ["Age"] = "17", ["Country"] = "Germany"},
new JObject {["Name"] = "bob", ["Age"] = "32", ["Country"] = "New Zealand"}
};
var o = new JObject {["Value"] = jArray};发布于 2021-04-07 10:45:23
如果要动态构造对象,可以使用字典:
var jsonObj = new Dictionary<string, List<Dictionary<string, string>>>
{
{
"Value", new List<Dictionary<string, string>>
{
new Dictionary<string, string>
{
{"Prename", "Nik"},
{"Age", "17"},
{"Country", "Germany"},
{"Car", "Merc"}
},
new Dictionary<string, string>
{
{"Prename", "Nik"},
{"Age", "20"},
{"Country", "Russia"},
{"Car", "BMW"}
},
new Dictionary<string, string>
{
{"Prename", "Nik"},
{"Age", "12"},
{"Country", "Switzerland"},
{"Car", "Audi"}
}
}
}
};
var json = JsonConvert.SerializeObject(jsonObj);
Console.WriteLine(json);发布于 2021-04-07 10:50:19
您可以考虑从匿名对象创建它,如下所示:
JObject o = JObject.FromObject(new
{
value = new [] {
new {
Name = "Nik",
Age = "17",
Country = "Germany"
},
new {
Name = "Nik1",
Age = "18",
Country = "Austria"
},
}
});
string json = o.ToString();它产生了以下结果:
{
"value": [
{
"Name": "Nik",
"Age": "17",
"Country": "Germany"
},
{
"Name": "Nik1",
"Age": "18",
"Country": "Austria"
}
]
}https://stackoverflow.com/questions/66984336
复制相似问题