如何修改JSON对象JSON数组中的C#?

问题描述 投票:-1回答:1

这是我的JSON数组

[
  {
   "gregdate": "06-03-2019",
   "maldate": "22-07-1194",
   "gregmonth": "March",
   "selected_status": "1"
  },
  {
   "gregdate": "04-05-2019",
   "maldate": "21-09-1194",
   "gregmonth": "May",
   "selected_status": "1"
  },
  {
   "gregdate": "03-06-2019",
   "maldate": "20-10-1194",
   "gregmonth": "June",
   "selected_status": "1"
  }
]

在这种JSON阵列,我想改变第二JSON对象“SELECTED_STATUS”值“1”到“0”,而不改变JSON对象的位置。

c# json
1个回答
3
投票

你需要先转换你的对象数组JArray,然后从1它的第二对象属性更改为0喜欢

string json = "You json here";                            //Load your json

JArray jArray = JArray.Parse(json);                       //Parse it to JArray

var jObjects = jArray.ToObject<List<JObject>>();          //Get list of objects inside array

foreach (var obj in jObjects)                             //Loop through on a list
{
    if (jObjects.IndexOf(obj) == 1)                       //Get 2nd object from array
    {
        foreach (var prop in obj.Properties())            //List 2nd objects properties
        {
            if (prop.Name == "selected_status")           //Get desired property
                obj["selected_status"] = 0;               //Change its value
        }
    }
}

JArray outputArray = JArray.FromObject(jObjects);         //Output array

替代方案:

正如布赖恩·罗杰斯建议您可以直接查询您的JArray,以取代其特定的属性值一样,

string json = "You json here";                            //Load your json

JArray jArray = JArray.Parse(json);                       //Parse it to JArray

jArray[1]["selected_status"] = "0";                       //Querying your array to get property of 2nd object

string outputJson = jArray.ToString();                    //Output json

输出:(从调试器)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.