I have two files one is a json another is xml and I need to merge both, I decided to transform the xml in json after concat/merge.
{
"Level1": {
"Level2": [
{
"id": "Chart",
"Box": [
{
"id": "1",
"value": "10"
},
{
"id": "2",
"value": "20"
}
]
}
]
}
}
The second Json:
{
"Level1": {
"Level2": [
{
"id": "NameApp",
"Box": [
{
"id": "2",
"value": "90"
},
{
"id": "3",
"value": "50"
}
]
}
]
}
}
OUTPUT :
{
"Level1": {
"Level2": [
{
"id": "Chart",
"Box": [
{
"id": "1",
"value": "10"
},
{
"id": "2",
"value": "20"
}, {
"id": "2",
"value": "90"
},
{
"id": "3",
"value": "50"
}
]
}
]
}
}
XML code:
XmlDocument doc = new XmlDocument();
doc.Load(pathXml);
doc.RemoveChild(doc.FirstChild);
string jsonTextXml = JsonConvert.SerializeXmlNode(doc);
JSON code:
using (StreamReader readerJson = new StreamReader(pathJson))
{
jsonTextJson = readerJson.ReadToEnd();
}
Code for Merge:
JObject o1 = JObject.Parse(jsonTextJson);
JObject o2 = JObject.Parse(jsonTextXml);
JArray box1 = o1["Level1"]["Level2"]["Box"][0] as JArray;
JArray box2 = o2["Level1"]["Level2"]["Box"][0] as JArray;
box1 = new JArray(box1.Concat(box2));
o1["Level1"]["Level2"]["Box"][0].Replace(box1);
When I wannt get the box1, I have this error: Object reference not set to an object instance.
I tested with this another way..
JArray box1 = o1["Level1"]["Level2"][0]["Box"] as JArray;
What is wrong?
No comments:
Post a Comment