でデシリアライズする方法、キーが異なる場合、key1からkeyNまでのJSONファイルをどのように逆シリアル化するのですか?私はPythonを使用すると非常に簡単です。 import pandas as pd
myJson = pd.json.loads(json)
2行のコードを使用していますが、C#を使用すると非常に難しいです。ありがとう。私はキーがkey1からkey1になる可能性があるので、ビジュアルスタジオ - >編集 - > Paste Special - > Jsonをクラスとして貼り付けると、アイテムキーごとに多くのクラスが生成されます。キー1000.JSONファイルをc#
public class Rootobject
{
public Key1 key1 { get; set; }
public Key2 key2 { get; set; }
public Key3 key3 { get; set; }
}
2.now私は以下の方法で使用しましたが、私はまだPythonほど簡単ではないと思います。
JObject items = JObject.Parse(json);
foreach(var item in items)
{
JObject v = JObject.Parse(item.Value.ToString());
foreach(KeyValuePair<string, JToken> property in v)
{ //do something}
}
JSON文字列:
{
"key1":
{
"id":1,
"name":"i",
"AllocationInfo":
{
"State":"Init",
"Name":"test",
"TModel":
{
"Name":"test2",
"key":"1232445",
"v":{
"id":"090",
"Name":"tom"
}
}
}
},
"key2":
{
"id":1,
"name":"i",
"AllocationInfo":
{
"State":"Init",
"Name":"test",
"TModel":
{
"Name":"test2",
"key":"1232445",
"v":{
"id":"090",
"Name":"tom"
}
}
}
},
"key3":
{
"id":1,
"name":"i",
"AllocationInfo":
{
"State":"Init",
"Name":"test",
"TModel":
{
"Name":"test2",
"key":"1232445",
"v": {
"id":"090",
"Name":"tom",
"D":{"id":"7890"}
}
}
}
}
}
あなたはので、これはクラスで表現されますあなたのJSONに3つのオブジェクトを持って、そこにありますそれをクラスにデシリアライズする他の方法はありません。あなたがjsonを変更することができる場合は、キークラスの配列として表現すると、キークラスは1つしかなく、ルートオブジェクトは 'List' –
mybirthname
になります。このJsonはテストファイルです。実際のJsonはもっと複雑ですそれよりも。同時に私は別のクラスであなたの言及されたメソッドを使用しましたが、このjson文字列のために、私はpythonのjson.loads()関数のようにもっと簡単な方法を理解したいと思います。 – shenhaizhilong