簡體   English   中英

如何從此JSON提取數據?

[英]How to extract data from this JSON?

我將以下JSON數組作為這樣的字符串,

String output = "[{\"Symbol\":\"AMZN\",\"Name\":\"Amazon.com Inc\",\"Exchange\":\"NASDAQ\"},{\"Symbol\":\"VXAZN\",\"Name\":\"CBOE Amazon VIX Index\",\"Exchange\":\"Market Data Express\"}]";

我想解析它並制作一個像這樣的字符串數組,

array = {"AMZN Amazon.com Inc NASDAQ", "VXAZN CBOE Amazon VIX Index Market Data Express"};

我想出了以下代碼,使用json-simple-1.1.1.jar庫將字符串解析為JSON數組,

import org.json.simple.*;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;


public class RESTclient {

    public static void main(String[] args) {

            String output = "[{\"Symbol\":\"AMZN\",\"Name\":\"Amazon.com Inc\",\"Exchange\":\"NASDAQ\"},{\"Symbol\":\"VXAZN\",\"Name\":\"CBOE Amazon VIX Index\",\"Exchange\":\"Market Data Express\"}]";

            JSONParser parser = new JSONParser();

            JSONArray jsonArray = null;

            try {
                jsonArray = (JSONArray) parser.parse(output);
            } catch (ParseException e) {
                e.printStackTrace();
            }

            System.out.println(jsonArray);
        }
}

這給了我以下輸出

[{"Name":"Amazon.com Inc","Exchange":"NASDAQ","Symbol":"AMZN"},{"Name":"CBOE Amazon VIX Index","Exchange":"Market Data Express","Symbol":"VXAZN"}]

在此之后,是否有一種優雅的方法來實現所需的輸出?

您必須編寫額外的代碼。

ArrayList<String> stringArray = new ArrayList<String>();
for (Iterator iterator = jsonArray.iterator(); iterator.hasNext();) {
    JSONObject map = (JSONObject)iterator.next();
    stringArray.add(map.get("Symbol")+" "+map.get("Name")+" "+map.get("Exchange"));
}
//stringArray is want you want

你可以像傑克遜那樣,

    private ObjectMapper    mapper  = new ObjectMapper();
    String[] outputArray = mapper.readValue(jsonString, String[].class); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM