2015-05-22 36 views
-3

您好,我試圖通過JSON.stringify方法轉換從JavaScript發送的數組。我目前正在試驗/尋找它的正則表達式解決方案,但任何返回正常JAVA Array<Integer>與「」作品之間的值。將JSON.stringify的JavaScript數組轉換爲Java數組

JAVA代碼:

private ArrayList<Integer> convertJSONArrayStringtoArray(String jsonArrayString){ 


    Matcher m = Pattern.compile(".*\\\"(.*)\\\".*").matcher(jsonArrayString); 
    while(m.find()) { 
     System.out.println("convertJSONtoArray: " + m.group(1));  
    } 

    return null; 

} 

字符串組成(請注意,該字符串不是保持一個陣列,只是一個簡單的陣列的JSON對象):

["12441","3324","11584","3337","25739","25810"] 
+3

有很多JSON解析器庫可用於Java。 – Pointy

+2

http://stackoverflow.com/questions/2255220/how-to-parse-a-json-and-turn-its-values-into-an-array – adeneo

+0

我不同意重複的問題,這個問題是不一樣的鏈接一個。它問如何反序列化那個不是有效的JSON的js數組,因此你不能直接通過JSON序列化器進行反序列化。 – Arijoon

回答

1

隨着使用Gson,你可以這樣做:

List<String> result = new Gson().fromJson(jsonArrayString, List.class); 
0

It it i這是一次性的,你覺得使用整個庫是多餘的:

String input = "[\"12441\",\"3324\",\"11584\",\"3337\",\"25739\",\"25810\"]"; 
String[] tokens = input.substring(1, input.length()-2).split(","); 
List<Integer> ints = Arrays.asList(tokens).stream().map(s -> Integer.parseInt(s.substring(1, s.length()-1))).collect(Collectors.toList());