C#到JSON构建嵌套字典

时间:2019-02-03 15:27:54

标签: c# json dictionary unity3d

我正在尝试以嵌套形式将信息保存到JSON:

(对丑陋的代码墙表示歉意,我只想了解一下我如何构建此结构)

"Data":{
  "001":{
    "01":{
      "1":{
        "exampleString":"Hello",
        "exampleInt":"123"
      },
      "2":{
        "exampleString":"Bye",
        "exampleInt":"456"
      }
    },
    "02":{
      "1":{
        "exampleString":"Red",
        "exampleInt":"789"
      }
    }
  },
  "002":{
    "01":{
      "1":{
        "exampleString":"Orange",
        "exampleInt":"1212"
      }
    },
    "02":{
      "1":{
        "exampleString":"Green",
        "exampleInt":"2424"
      },
      "2":{
        "exampleString":"Pink",
        "exampleInt":"7878"
      },
    }
  }
}

在C#中,这就是我试图布置嵌套词典的方式。 我主要的麻烦是在一个“顶级”字典密钥中添加了多个“中间层”。

[System.Serializable]
public class TopTier
{
    // key is (000) level -- Value is (00) level
    [SerializeField] public SortedDictionary<string, MiddleTier> topToMiddle;
}


[System.Serializable]
public class MiddleTier
{
    // key is (00) level -- Value is (0) level
    [SerializeField] public SortedDictionary<string, BottomTier> middleToBottom;

}


[System.Serializable]
public class BottomTier
{
    // key is (0) level -- Value is BottomTierInfo
    [SerializeField] public SortedDictionary<string, BottomTierInfo> middleToBottom;
}

[System.Serializable]
public class BottomTierInfo
{
    public string exampleString;
    public int exampleInt;
}

可以通过将TopTier字典的Value设置为包含多个中间层的数组来解决这种问题吗?我将/将如何去做?

一段时间以来,我一直在努力思考如何构造它,我似乎对此并不太了解,因此希望您可以引导我朝着正确的方向前进。

0 个答案:

没有答案