首页 > 解决方案 > 将排序后的 json 添加回 json 对象

问题描述

如何将排序的 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。你能帮我解决这个问题吗?

标签: c#json

解决方案


这是一个使用示例Array.Sort()

var jObj = JsonConvert.DeserializeObject<Informat>(_json);
Array.Sort(jObj.Information, (x, y) => x.FieldName.CompareTo(y.FieldName));
var sortedJson = JsonConvert.SerializeObject(jObj);

推荐阅读