为了账号安全,请及时绑定邮箱和手机立即绑定

如何将空数组添加到 json 有效负载?

如何将空数组添加到 json 有效负载?

C#
开满天机 2022-12-04 13:23:24
是否可以将数组添加到 json 有效负载?例如,假设这是我的有效负载:        string json = @"{          'channel': {            'title': 'Star Wars',            'link': 'http://www.starwars.com',            'description': 'Star Wars blog.',            'obsolete': [{'something':'awesome'},{'a':'b'}],            'item': [],            'nested':[{'upgrademe':'please'}, {'upgrademe':'no'}]          }        }";我想要的结果是这样的:        string json = @"{          'channel': {            'title': 'Star Wars',            'link': 'http://www.starwars.com',            'description': 'Star Wars blog.',            'obsolete': [{'something':'awesome'},{'a':'b'}],            'item': [],            'nested':[{'upgrademe':'please', 'emptyArray':[]}, {'upgrademe':'no'}]          }        }";对于每个channel.nested==upgrademe然后please我想添加一个空数组,如[].前:'nested':[{'upgrademe':'please'}, {'upgrademe':'no'}]后:'nested':[{'upgrademe':'please', 'emptyArray':[]}, {'upgrademe':'no'}]我目前的实施:    public static JObject AddArray(this JObject jObject, string path, string key, string value)    {        var obs = jObject.SelectToken(path);        if (obs == null)        {            return jObject;        }        foreach (var jsonObject in obs)        {            if (jsonObject.SelectToken(key).ToString().ToLower() != value.ToLower())            {                continue;            }            jObject.SelectToken(path).Parent.AddAfterSelf(new JValue(new JProperty("emptyArray", new JArray())));        }        return jObject;    }我在这条线上遇到了一个例外:使用示例:        var result = jobject.AddArray("channel.nested", "upgrademe", "please");上面说了以下内容:找到对象“channel.nested”,当 upgrademe==please 时,添加一个同级节点作为空数组我们如何有条件地将数组对象添加到 json 负载中?
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

由于您要将新属性添加到对象中。你不需要使用JValue

直接使用JProperty即可:

AddAfterSelf(new JProperty("emptyArray", new JArray()))


查看完整回答
反对 回复 2022-12-04
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信