I have the following JSon string returned from a service:
{
"links": {
"data": {
"self": {
"body": "",
"content_type": "",
"href": "",
"method": "GET",
"name": ""
}
}
},
"results": [{
"data": {
"categories": {
"41370_10": "abc",
"41370_11": "abc",
"41370_2": "abc",
"41370_5": "abc"
}
},
"metadata": {
"categories": {
"41370": {
"key": "41370",
"name": "123"
},
"41370_10": {
"bulk_shared": false,
"key": "41370_10",
"name": "some name"
},
"41370_11": {
"allow_undefined": false,
"key": "41370_11",
"name": "some name 2"
},
"41370_2": {
"key": "41370_2",
"key_value_pairs": false,
"name": "some name 3"
}
}
}
},
{
"data": {
"categories": {
"72051_2": "asd",
"72051_3": "asd"
}
},
"metadata": {
"categories": {
"72051": {
"key": "72051",
"name": "some name 4"
},
"72051_2": {
"key": "72051_2",
"name": "some name 5"
}
}
}
},
{
"data": {
"categories": {
"112644_2": "zxc"
}
},
"metadata": {
"categories": {
"112644": {
"key": "112644",
"name": "some name 6"
},
"112644_2": {
"hidden": false,
"key": "112644_2",
"name": "some name 7"
}
}
}
}]
}
How do I process this data to get a nice, plain Dictionary? It would look something like this:
{"some name", "abc"},
{"some name 2", "abc"},
{"some name 3", "abc"},
{"some name 5", "asd"},
{"some name 6", "zxc"}
Currently trying to use c#, json.net, with scarce success. Any help greatly appreciated.
Update 1: I've gotten as far as getting the JTokens out of it, but am not sure how to separate the data from metadata (yes, I realize how absurd that sounds).
//get json object
JObject cjob = JObject.Parse(response.Content.ReadAsStringAsync().Result);
IEnumerable<JToken> categorymetadata = cjob.Descendants()
.Where(t => t.Type == JTokenType.Property && ((JProperty)t).Name == "categories")
.SelectMany(p => ((JProperty)p).Value);
process this data== deserialize