どのようにすることができますjson構造の下で逆変換することができます.netでnewtonsoft json.netを使用します。動的(数値)キー名を使用して子オブジェクトを逆シリアル化する方法はありますか?
{
"users" : {
"parentname":"test",
"100034" : {
"name" : "tom",
"state" : "WA",
"id" : "cedf-c56f-18a4-4b1"
},
"10045" : {
"name" : "steve",
"state" : "NY",
"id" : "ebb2-92bf-3062-7774"
},
"12345" : {
"name" : "mike",
"state" : "MA",
"id" : "fb60-b34f-6dc8-aaf7"
}
}
}
私は以下のコードを試しましたが、動作しません。私はエラー '値を変換するエラー "テスト"を入力する' ConsoleApplication2.User '。パス 'users.parentname'、5行目、35桁目。 '
class Program
{
static void Main(string[] args)
{
string json = @"
{
""users"": {
""parentname"":""test"",
""10045"": {
""name"": ""steve"",
""state"": ""NY"",
""id"": ""ebb2-92bf-3062-7774""
}
}
}";
RootObject root = JsonConvert.DeserializeObject<RootObject>(json);
}
}
class RootObject
{
public string ParentName { get; set; }
public Dictionary<string, User> users { get; set; }
}
class User
{
public string name { get; set; }
public string state { get; set; }
public string id { get; set; }
public string ParentName { get; set; }
}
お勧めします。
本当にあなたのユーザーオブジェクト内にparentnameを持っていますか?ルートレベルに置くとコードが動作します( 'ParentName'プロパティを' parentname'に変更してJSONにマッチさせる必要があります)。 – bib1257
'RootObject'と' User'オブジェクトに 'ParentName'プロパティがあるのはなぜですか?それの後ろに深い意味がありますか? – croxy
このjsonはクライアントによって与えられます..変更できません:( – amit