到目前为止做了什么?
我正在将记录数量分成 3 个批次并并行处理它们以提高性能。但是,在并行处理批次后,我还想将处理记录的结果(JSON 字符串)保存在一个变量中。
正如您在下面看到的,我首先将变量初始化为List
of string
,然后运行foreach
循环保存处理的结果,如下所述。
List<string> responseOutcome = new List<string>();
Parallel.ForEach(recordBatches, batch => {
responseOutcome.Add(response1.Content);
});
列表responseOutcome 中的结果为:
响应结果[0]
[
{
"Name": "Sample1",
"ID": "123"
},
{
"Name": "Sample2",
"ID": "394"
}
],
响应结果[1]
[
{
"Name": "Sample5",
"ID": "384"
},
{
"Name": "Sample6",
"ID": "495"
}
],
响应结果[2]
[
{
"Name": "Sample3",
"ID": "473"
},
{
"Name": "Sample4",
"ID": "264"
}
]
我想达到什么目标?现在我想获取responseOutcome的值,它是多个 JSON 字符串数组,并将它们合并为一个大的JSON 字符串。
最终输出
[
{
"Name": "Sample1",
"ID": "123"
},
{
"Name": "Sample2",
"ID": "394"
},
{
"Name": "Sample5",
"ID": "384"
},
{
"Name": "Sample6",
"ID": "495"
},
{
"Name": "Sample3",
"ID": "473"
},
{
"Name": "Sample4",
"ID": "264"
}
]
我调查了几个类似的案例,但它们几乎不相似。像:
如何在 Newtonsoft JSON.Net 中组合来自两个 JObjects 的两个数组?
任何帮助/指导都会很棒!!
使用Newtonsoft
,您可以JArray
从每个响应中创建一个。然后您可以使用linq
的SelectMany
方法展平层次结构并重新序列化对象。
试试这个:
var obj = responses.Select(r => JArray.Parse(r.Trim(','))).SelectMany(token => token);
string json = JsonConvert.SerializeObject(obj, Formatting.Indented);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句