如何使用 json.net 将 json 数组添加到 JObject 的属性中
Posted
技术标签:
【中文标题】如何使用 json.net 将 json 数组添加到 JObject 的属性中【英文标题】:How to add a json array into a property of a JObject with json.net 【发布时间】:2013-03-27 07:03:17 【问题描述】:我很难弄清楚如何将 json 对象数组添加到现有的 JObject
。假设我有一个只有“Modified”属性的JObject
,并且我想添加另一个包含 json 对象数组的属性“IntersectGroups”,我该怎么做?我有一个JObject[]
,当我序列化它时,它正是我需要的格式,但我正在寻找这样的东西:mainJObject.Add("IntersectGroups", myJObjectArray)
这是我序列化时想要的最终 json 的示例。
...
"Modified": "2012-11-26T10:21:04.693",
"IntersectGroups": [
"Id": 1004,
"UserId": 20003,
"GroupId": 1001,
"Admin": false,
"Expires": "1900-01-01T00:00:00"
,
"Id": 1003,
"UserId": 20003,
"GroupId": 1000,
"Admin": false,
"Expires": "1900-01-01T00:00:00"
]
...
更新
我的最终解决方案是使用 JArray 对象。 JArray 是一个 JContainer,它是一个 JToken,您可以将它添加到 JObject。我的问题是我试图使用一个 JObject[],它不是一个有效的 JToken
【问题讨论】:
我认为您需要做的就是将对象序列化为字符串,然后将它们连接起来并反序列化为支持它们的类。 我认为这可行,我会试一试,谢谢你的想法 【参考方案1】:我的最终解决方案是使用JArray
对象。 JArray
是 JContainer
,它是 JToken
,您可以将其添加到 JObject
。我的问题是我试图使用JObject[]
,它不是有效的JToken
【讨论】:
【参考方案2】:查看PopulateObject()
方法,它有一个很好的例子来说明如何做到这一点:
http://james.newtonking.com/projects/json/help/index.html?topic=html/PopulateObject.htm
【讨论】:
似乎这是唯一的方法之一。有点愚蠢的imo,除了首先创建具有兼容数据类型的对象之外,没有其他方法可以做我想做的事,不管感谢挖掘这个。以上是关于如何使用 json.net 将 json 数组添加到 JObject 的属性中的主要内容,如果未能解决你的问题,请参考以下文章
xml转换为json格式时,如何将指定节点转换成数组 Json.NET
如何将 Dictionary<string,string> 添加到现有 JSON.Net 的 JObject?
如何使用与 NewtonSoft (JSON.Net) 组件中的 JSON 匹配的 Swift 类从/向 JSON 读取/写入对象数组?