2

したがって、JSON配列「ペット」を持つJSON(PetFinder APIの好意による)がいくつかあります。ペット構造体のスライスである「encoding/json」パッケージを使用して、そこから非整列化したいと思います。 この種の構造はどのように見えるでしょうか?unmarshall 関数が JSON 配列を処理する方法の例が見つかりません。

適切な構造体ができたら、次のことを計画していました。

pfetch := new(PetsFetcher) // where PetsFetcher is the struct im asking for
err := json.Unmarshal(body, &pfetch)

そして、ここに本体にあるjsonがあります(ASCIIバイトのスライスの形式で):

{
  "petfinder": {
    "lastOffset": {
      "$t": 5
    },
    "pets": {
      "pet": [
        {
          "options": {
            "option": [
              {
                "$t": "altered"
              },
              {
                "$t": "hasShots"
              },
              {
                "$t": "housebroken"
              }
            ]
          },
          "breeds": {
            "breed": {
              "$t": "Dachshund"
            }
          }
    },
        {
          "options": {
            "option": {
              "$t": "hasShots"
            }
          },
          "breeds": {
            "breed": {
              "$t": "American Staffordshire Terrier"
            }
          },
          "shelterPetId": {
            "$t": "13-0164"
          },
          "status": {
            "$t": "A"
          },
          "name": {
            "$t": "HAUS"
          }
        }
      ]
    }
  }
}

前もって感謝します。

4

2 に答える 2

2

これらの属性が JSON で何をしているのかまったくわからない$tので、簡単な例で質問に答えましょう。この JSON を非整列化するには:

{
  "name": "something",
  "options": [
    {
      "key": "a",
      "value": "b"
    },
    {
      "key": "c",
      "value": "d"
    },
    {
      "key": "e",
      "value": "f"
    },
  ]
}

DataGo では次の型が必要です。

type Option struct {
    Key   string
    Value string
}

type Data struct {
    Name    string
    Options []Option
}
于 2013-06-16T07:42:05.193 に答える