1

動的なプロパティ名で json データを返す API を呼び出しています。この応答を逆シリアル化できるクラスを構築しようとしていますが、このプロパティ名は私のお尻の痛みです。

"data": {
  "1": {
    "Item": {
      "id": "1",
      "name": "Item 1"
    }
  },
  "2": {
    "Item": {
      "id": "2",
      "name": "Item 2"
    }
  },
  "3": {
    "Item": {
      "id": "3",
      "name": "Item 3"

このシナリオに対処する最善の方法は何ですか? 外部ノードを削除するために使用できる正規表現を考え出そうとしていますが、まだ成功していません。

何か助けはありますか?

4

2 に答える 2

2

"1" と "2" が動的プロパティ名である場合、RegEx で応答を操作しようとする代わりに、単に "data" を Dictionary にするのはどうでしょうか? その後、辞書を列挙するだけです。

public class Response
{
    [JsonProperty("data")]
    public Dictionary<string, ItemContainer> { get; set; }
}

public class ItemContainer
{
    [JsonProperty("Item")]
    public Item Item { get; set; }
}
于 2013-10-24T20:41:57.077 に答える
-1

これはそれを取り除く必要があります。{ の最初の出現を検出し、そこから移動するため、結果の文字列は "varname" ではなく {......} になります: {......}

myjson = jsonstring.Substring (jsonstring.IndexOf('{'));
于 2013-10-24T19:12:25.680 に答える