我正在尝试在json中修改以下文本。下面的链具有以下结构:
{
"cabecera": {
"tipo_cambio": "",
"fecha_emision": "",
"total": ""
},
"detalle": {
"940b130369614bd6b687dc5b41623439": {
"producto": "94115891",
"detalle_adicional": "",
"cantidad": "",
"precio_unitario": "",
"subtotal": "",
"total": ""
},
"6cbdcef2bbff4b059c8de7432c9aa5f2": {
"producto": "6738756",
"detalle_adicional": "",
"cantidad": "",
"precio_unitario": "",
"subtotal": "",
"total": ""
}
}
}
我想将其修改为以下结构,以使“ 940b130369614bd6b687dc5b41623439”之类的代码消失,而dtalle成为and数组。
{
"cabecera": {
"tipo_cambio": "",
"fecha_emision": "",
"total": ""
},
"detalle": [
{
"producto": "94115891",
"detalle_adicional": "",
"cantidad": "",
"precio_unitario": "",
"subtotal": "",
"total": ""
},
{
"producto": "6738756",
"detalle_adicional": "",
"cantidad": "",
"precio_unitario": "",
"subtotal": "",
"total": ""
}
]
}
在C#中有什么方法吗?
答案 0 :(得分:0)
这是一个解决问题的小型C#程序
string origJson =
@"{
""cabecera"": {
""tipo_cambio"": """",
""fecha_emision"": """",
""total"": """"
},
""detalle"": {
""940b130369614bd6b687dc5b41623439"": {
""producto"": ""94115891"",
""detalle_adicional"": """",
""cantidad"": """",
""precio_unitario"": """",
""subtotal"": """",
""total"": """"
},
""6cbdcef2bbff4b059c8de7432c9aa5f2"": {
""producto"": ""6738756"",
""detalle_adicional"": """",
""cantidad"": """",
""precio_unitario"": """",
""subtotal"": """",
""total"": """"
}
}
}";
JObject obj = JObject.Parse(origJson);
JArray detalleChilds = new JArray(obj.SelectToken("detalle").Select(x => x.Children()));
obj.Remove("detalle");
obj.Add("detalle", detalleChilds);
Console.WriteLine(obj);
要使用此示例,您需要安装Newtonsoft.Json NuGet
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />