19

こんにちは、次のような json があります。

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

questionAnswerこれで、配列内のオブジェクトをループしてオブジェクトの名前を取得するコードをいくつか書きました4534538254745646.1。現在、各アイテムのキーと値も保存しようとしていますが、値を取得することしかできていません。

これを行うにはどうすればよいですか、これが私のコードです:

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;                                      
}

そのため、現時点ではジャネットしか取得できませんが、ファーストネーム フィールドも必要です。次に、これを取得して辞書に追加したい

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
4

1 に答える 1

23

したがって、配列内のオブジェクトの各項目のキーと値を取得する完全なコードは次のとおりです。

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);               
}

キーと値を辞書に追加できるようになりました

于 2013-11-14T10:43:04.867 に答える