提取JSON.decoded数据的示例

时间:2018-01-17 00:51:06

标签: json dart

我正在尝试从此URL的结果的JSON.decode中提取数据

http://fhirtest.uhn.ca/baseDstu3/CarePlan/682734/_history/1?_pretty=true

解析后的数据如下所示

{
  "resourceType": "CarePlan",
  "id": "682734",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2018-01-12T03:13:38.944-05:00"
  },
  "status": "completed",
  "category": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "91251008",
          "display": "Physical therapy procedure"
        }
      ]
    }
  ],
  "subject": {
    "reference": "Patient/682678"
  },
  "context": {
    "reference": "Encounter/682732"
  },
  "period": {
    "start": "2014-01-09",
    "end": "2014-02-04"
  },
  "addresses": [
    {
      "reference": "Condition/682733"
    }
  ],
  "activity": [
    {
      "detail": {
        "code": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "229586001",
              "display": "Rest, ice, compression and elevation treatment programme"
            }
          ]
        },
        "status": "completed"
      }
    },
    {
      "detail": {
        "code": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "229070002",
              "display": "Stretching exercises"
            }
          ]
        },
        "status": "completed"
      }
    }
  ]
}

我想提取"代码"和"显示"在数据的最后

任何例子都会受到赞赏

1 个答案:

答案 0 :(得分:1)

解除JSON的结果是JSON-ish值,可以是地图或列表,也可以是原始值。 在这种情况下,提取值的示例可以是:

var data = JSON.decode(fetchedData);
var code = data["activity"].last["detail"]["code"];
var display = code["coding"][0]["display"];
print(display);  // "Stretching exercises"

activity数组中有多个元素,这只是访问最后一个元素(&#34;代码&#34;&#34;显示&#34; end < / em>的数据)。

running on DartPad