Get values and keys in json object using Json.Net C#

北城以北 提交于 2019-12-04 16:41:53

问题


Hi there I have json that looks like this:

{
    "Id": " 357342524563456678",
    "title": "Person",
    "language": "eng",
    "questionAnswer": [
        {
            "4534538254745646.1": {
                "firstName": "Janet",
                "questionNumber": "1.1"
            }
        }
    ]
}

Now I have written some code that loops over the objects in the questionAnswer array and then gets the name of the object which is 4534538254745646.1. Now Im trying to save the key of each Item and the value aswell but I am only managing to get the value.

How would I do this, here is my code:

JToken entireJson = JToken.Parse(json);
JArray inner = entireJson["questionAnswer"].Value<JArray>();


foreach(var item in inner)
{
     JProperty questionAnswerDetails = item.First.Value<JProperty>();
     //This line gets the name, which is fine
     var questionAnswerSchemaReference = questionAnswerDetails.Name;
     var properties = questionAnswerDetails.Value.First;

     //This only gets Janet
     var key = properties.First;
     var value = properties.Last;                                      
}

So at the moment Im only able to get Janet, But I also want the firstname field. I want to then take this and add to a dictionary i.e.

Dictionary<string, string> details = new Dictionary<string, string>();
//suedo
foreach(var item in questionAnswerObjects)
details.Add(firstName, Janet);
//And then any other things found below this

回答1:


So Here is he complete code that gets the keys and values for each item in the object in the array:

string key = null;
string value = null;

foreach(var item in inner)
{
    JProperty questionAnswerDetails = item.First.Value<JProperty>();

    var questionAnswerSchemaReference = questionAnswerDetails.Name;

    var propertyList = (JObject)item[questionAnswerSchemaReference];

    questionDetails = new Dictionary<string, object>();

    foreach (var property in propertyList)
    {
         key = property.Key;
         value = property.Value.ToString();
    }

    questionDetails.Add(key, value);               
}

I can now add key and value to the dictionary



来源:https://stackoverflow.com/questions/19974763/get-values-and-keys-in-json-object-using-json-net-c-sharp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!