You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效从现有JObject中生成其子集JObject?

提取JObject中子数组元素为新JObject的优化实现

我有一个JObject(示例JSON如下),需要提取其中的SubArray子数组,生成一个以该子数组内元素为父级的新JObject,包含该元素的所有同级及子级内容。

示例JSON:

[
    {
        "Date": "2023-06-30",
        "Code": 12,
        "SubArray": [
                        {
                            "Id": 404,
                            "Title": "MyTitle",
                            "Description": "Stuff"
                        }
                    ]
    }
]

当前实现方式

先将子数组序列化为字符串,再移除首尾括号后反序列化为JObject:

string mystring = JsonConvert.SerializeObject(JObject1["SubArray"]);
JObject JObject2 = JsonConvert.DeserializeObject<JObject>(mystring.TrimStart('[').TrimEnd(']'));

优化后的简洁实现

直接通过JToken的索引访问和类型转换,无需序列化/反序列化的额外开销,代码更简洁高效:

string json = "<text from json sample above>";
JObject JObject1 = JObject.Parse(json);
JObject JObject2 = JObject1["SubArray"][0].ToObject<JObject>();

说明:这种方式直接操作JSON.NET的JToken对象,跳过了字符串序列化和反序列化的中间过程,性能更优。若SubArray包含多个元素,只需调整索引或遍历数组即可批量处理。

内容的提问来源于stack exchange,提问作者SpaghettiWestern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:34:57