如何在C#中添加每个json对象的父节点?
我对JSON解析和很多方法都是新手,但这里只是给出我的预期输出。如果您可以帮助或忽略这一点 我选择了一个具有以下属性的模型如何在C#中添加每个json对象的父节点?,c#,json,C#,Json,我对JSON解析和很多方法都是新手,但这里只是给出我的预期输出。如果您可以帮助或忽略这一点 我选择了一个具有以下属性的模型 [JsonProperty(PropertyName="add-field")] public string addfield { get; set; }="{"; public string name { get; set; } public string type { get; set; } public string indexed { get
[JsonProperty(PropertyName="add-field")]
public string addfield { get; set; }="{";
public string name { get; set; }
public string type { get; set; }
public string indexed { get; set; }
public string stored { get; set; }
然后在序列化模型对象之后,我得到了下面的json对象
{add-field": "{",
"name": "ID",
"type": "string",
"indexed": "true",
"stored": "true"
},` {
"add-field": "{",
"name": "Address",
"type": "string",
"indexed": "true",
"stored": "true"
}
}
但我想将其转换为以下api格式:
{"add-field":{
"name":"ID",
"type":"string",
"stored":true },
"add-field":{
"name":"I",
"type":"string",
"stored":true },
"add-field":{
"name":"Address",
"type":"string",
"stored":true }
}
我怎么能做到这一点呢?欢迎任何建议。JSON代表JavaSscriptOobjectNotation,这意味着JSON是由对象组成的 在JS中,对象可以定义为
object:{
field1:value1,
field2:value2,
}
有点像C#对象初始化
new Object{
Field1 = value1,
Field2 = value2,
};
请注意,在这两个中,根都是对象,因为括号内的内容都是属性。所以如果你想
"add-field":{
"name":"ID",
"type":"string",
"stored":true
}
你需要这样的东西:
public class Add-Field {
public string name { get; set; }
public string type { get; set; }
public string indexed { get; set; }
public string stored { get; set; }
}
{
"add-fields":[
{
"name":"ID",
"type":"string",
"stored":true },
{
"name":"I",
"type":"string",
"stored":true },
{
"name":"Address",
"type":"string",
"stored":true }
]
}
警惕
您展示的JSON:
{"add-field":{
"name":"ID",
"type":"string",
"stored":true },
"add-field":{
"name":"I",
"type":"string",
"stored":true },
"add-field":{
"name":"Address",
"type":"string",
"stored":true }
}
不起作用,正确的方法是使用数组,如下所示:
public class Add-Field {
public string name { get; set; }
public string type { get; set; }
public string indexed { get; set; }
public string stored { get; set; }
}
{
"add-fields":[
{
"name":"ID",
"type":"string",
"stored":true },
{
"name":"I",
"type":"string",
"stored":true },
{
"name":"Address",
"type":"string",
"stored":true }
]
}
或
它需要
公共列表添加字段{get;set;}
“添加字段”应该是类型而不是字符串。应该是什么类型的?你是说列表还是数组?@puropoixno,type==class。你确定它的某些部分周围没有方括号吗?将addfield
定义为一个字符串并为其分配“{”并不是你所想的那样。“{
与{
不同。是的,序列化后有方括号,我已经删除了,因为我需要以下格式来调用api。{“addfield”:{“name”:“ID”,“type”:“string”,“stored”:true},“add field”:{“name”:“I”,“type”:“string”,“stored”:true},“add field”:{“name”:“Address”,“type”:“string”,“stored”:true}}我的意思是如果API的json中应该有方括号。请注意,您显示为您需要/想要它的json是无效的json,因为“add field”重复“钥匙。谢谢@J.Pichardo。我会尽量让你知道的。