2016-04-23 21 views
0

私は私が解析するには、次のコードを思い付いたこのJSONからデータを抽出する方法は?

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

、私はそれを解析し、このような文字列の配列を作りたい

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

、このような文字列として、次のJSON配列を持っています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); 
     } 
} 

これは私に次のようOUTPUTを与えます、この後の今

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

、私の所望の出力を達成するためのエレガントな方法はありますか?

答えて

1

、同じようジャクソンでそれを行うことができます。

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 
0

あなたは、余分なコードを記述する必要が

private ObjectMapper mapper = new ObjectMapper(); 
    String[] outputArray = mapper.readValue(jsonString, String[].class); 
関連する問題