如何结合Jarray?
Posted
技术标签:
【中文标题】如何结合Jarray?【英文标题】:How to combine Jarray? 【发布时间】:2022-01-08 07:35:13 【问题描述】:c# 我要结合Jarray。 每个 Jarray 都有一个共同的 id,一个 Jobject。 我将根据“id”制作一个 json 文件。我该怎么办?
Jarray 1
[
"id" : "222",
"name" : "second"
,
"id" : "111",
"name" : "first"
,
"id" : "333",
"name" : "third"
]
Jarray 2
[
"id" : "111",
"info" : "one one one"
,
"id" : "222",
"info" : "two two two"
,
"id" : "333",
"info" : "three three three"
]
Jarray 3
[
"id" : "333",
"number" : "3"
"call" : "three"
,
"id" : "222",
"number" : "2"
"call" : "two"
,
"id" : "111",
"number" : "1"
"call" : "one"
]
【问题讨论】:
就我个人而言,我从一头扎入深海中获得了很好的学习经验,尽管从更丰富的基础知识开始。尽管如此,我并没有真正看到 OP 的方法有什么问题。就我个人而言,我尽可能避免使用 JArray 和其他 J 类型,但我看不出这个问题有多糟糕。有人认为我们可能会同意,问题的质量不是最好的,但我是来提供帮助的,而不是阻止寻求帮助的人再次提问。 【参考方案1】:拥有所有属性的类:
class NameInfoNumberCall
internal string ID get; set;
internal string Name get; set;
internal string Info get; set;
internal string Number get; set;
internal string Call get; set;
基于 JArray 填充对象的代码。只需遍历所有项目,访问属性并将其存储在对象中:
static void Main()
var jarray1 = JArray.Parse("[\"id\":\"222\",\"name\":\"second\",\"id\":\"111\",\"name\":\"first\",\"id\":\"333\",\"name\":\"third\"]");
var jarray2 = JArray.Parse("[\"id\":\"111\",\"info\":\"oneoneone\",\"id\":\"222\",\"info\":\"twotwotwo\",\"id\":\"333\",\"info\":\"threethreethree\"]");
var jarray3 = JArray.Parse("[\"id\":\"333\",\"number\":\"3\",\"call\":\"three\",\"id\":\"222\",\"number\":\"2\",\"call\":\"two\",\"id\":\"111\",\"number\":\"1\",\"call\":\"one\"]");
var infos = new Dictionary<string, NameInfoNumberCall>();
foreach (JObject o in jarray1)
var info = new NameInfoNumberCall();
info.ID = (string)o["id"];
info.Name = (string)o["name"];
infos.Add(info.ID, info);
foreach (JObject o in jarray2)
infos[(string)o["id"]].Info = (string)o["info"];
foreach (JObject o in jarray3)
infos[(string)o["id"]].Number = (string)o["number"];
infos[(string)o["id"]].Call = (string)o["call"];
// do something with the data
【讨论】:
你我的英雄你我的天使你我的一切......谢谢你先生我的爱 @ggumini:如果此答案解决了您的问题,您可以使用复选标记将其标记为已接受的答案。其他人就会知道不需要更多的帮助。以上是关于如何结合Jarray?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JArray 的所有元素添加到 C# 中的 JObject?