To jest dane JSON i staram się uzyskać dostęp do daty i wartości otwartej z tym kodem, ale otrzymuję błędy. Jaka byłaby właściwa składnia?

factory Stock.fromJson(Map<String, dynamic> json) { // parse the json into data we can use
    return Stock(
      date: json['Time Series (Daily)[0]'],
      open: json['Time Series (Daily[0].open'],
      high: json['Time Series (Daily[0].high'],
      low: json['Time Series (Daily[0].low'],
      close: json['Time Series (Daily[0].close'],
      volume: json['Time Series (Daily[0].volume']
    );
  }
{
    "Meta Data": {
        "1. Information": "Daily Prices (open, high, low, close) and Volumes",
        "2. Symbol": "MSFT",
        "3. Last Refreshed": "2020-03-26",
        "4. Output Size": "Compact",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2020-03-26": {
            "1. open": "148.4000",
            "2. high": "156.6600",
            "3. low": "148.3700",
            "4. close": "155.8800",
            "5. volume": "64143669"
        }
}
0
swiftthrow 27 marzec 2020, 03:39

1 odpowiedź

Najlepsza odpowiedź

Aby uzyskać JSON obiektów lub wartości danych JSON, musisz przekazać nazwy atrybutów i manipulować obiektem JSON

factory Stock.fromJson(Map<String, dynamic> json) { // parse the json into data we can use
return Stock(
  date: json['Time Series (Daily)']['2020-03-26'],
  open: json['Time Series (Daily)']['2020-03-26']['1. open'],
  ...
);

}

Możesz także konwertować swój obiekt JSON do DART za pomocą tego narzędzia: https://javiercbk.github.io/json_to_dart/.

1
F Perroch 27 marzec 2020, 00:52