【发布时间】:2021-09-17 01:09:34
【问题描述】:
如何将排序后的 json('sortedJson') 添加回下面的整个 json('jObj')?或者是否有其他方法可以执行以下操作?
Json:
{
"Information": [
{
"FieldName": "Area04",
"Draft": "Unknown",
},
{
"FieldName": "Area02",
"Draft": "Unknown",
},
{
"FieldName": "Area01",
"Draft": "Unknown",
},
{
"FieldName": "Area03",
"Draft": "Unknown",
}
],
"OtherInfo": []
}
Code:
static void Main(string[] args)
{
string _json = "{'Information': [{'FieldName': 'Area04','Draft': 'Unknown'},{'FieldName': 'Area02','Draft': 'Unknown'},{'FieldName': 'Area01','Draft': 'Unknown'},{'FieldName': 'Area03','Draft': 'Unknown'}],'OtherInfo': []}";
var jObj = JsonConvert.DeserializeObject<Informat>(_json);
var test1 = jObj.Information.OrderBy(x => x.FieldName);
var sortedJson = JsonConvert.SerializeObject(test1);
//Add code to merge 'sortedJson' to '_json'
}
Class:
public class Informat
{
public Information[] Information { get; set; }
public object[] OtherInfo { get; set; }
}
public class Information
{
public string FieldName { get; set; }
public string Draft { get; set; }
}
我不知道如何将排序后的 json 添加回整个 json。你能帮我解决这个问题吗?
【问题讨论】:
-
真的需要制作双json字符串吗?
-
只需将有序输出设置回您的类并将整个对象反序列化回 JSON。所以
jObj.Information = test1.ToArray(); _json = JsonConvert.SerializeObject(jObj); -
@DavidG - 谢谢大卫!是的!我应该对此有所了解。工作正常。
-
@DavidG - 当字符串和数字组合超过 5 个字符时,我的排序解决方案不起作用。你能帮忙吗?
-
不确定你的意思。排序就是排序,与字段的长度无关。