2014-11-21 147 views
0

我想轉換一個JSON字符串數組到Java是從這段JavaScript給出:將JSON數組轉換爲Java?

javaFunction(["a1", "a2"]); <--- This is called in javascript 

在Java

public static void javaFunction(<What here?> jsonStringArray){ //<---- This is called in Java 
    //Convert the JSON String array here to something i can iterate through, 
    //For example: 

    for(int index = 0; index < convertedArray.length; index++){ 
     System.out.println(convertedArray[index]; 
    } 
} 
+0

沒有爲JSON處理的Java API:http://www.oracle.com/technetwork/articles/java/json-1973242.html – Markai 2014-11-21 12:21:12

+0

你可以打印您的JSON數組,並顯示它,所以我們可以給你確切的答案? – 2014-11-21 12:27:25

+0

JSON數組在問題第一行代碼行 – ErikBrandsma 2014-11-21 12:32:52

回答

0

您可以使用此:

List<String> list = new ArrayList<String>(); 
for(int i = 0; i < jsonStringArray.length(); i++){ 
    list.add(jsonStringArray.getJSONObject(i).getString("name")); 
    } 
+0

好的..但.getString(「name」)從哪裏來?我應該填寫什麼javaFunction參數..例如,它應該是JSONArray jsonStringArray?字符串jsonStringArray? – ErikBrandsma 2014-11-21 12:23:25

+0

在java方法中,只需發送需要轉換的json數組。而你的json數組應該在鍵值對中。所以getString會爲每個鍵取值並將其添加到列表中。 – 2014-11-21 12:26:04

+0

是的,我知道!但是jsonStringArray是什麼類型? public static void javaFunction( jsonStringArray) – ErikBrandsma 2014-11-21 12:28:26

0

我解決了這個問題:

在JavaScript中:

javaFunction(JSON.Stringify(["a1", "a2"])); 

在Java

public static void javaFunction(String jsonArrayString){ 
    JSONArray jsonArray = new JSONArray(jsonArrayString); 
    List<String> list = new ArrayList<String>(); 
    for(int i = 0; i < jsonArray.length(); i++){ 
     list.add(jsonArray.getString(i)); 
    } 
} 
+0

那麼你把它轉換成字符串格式?這是如何解決問題的? – 2014-11-21 12:58:20

+0

因爲現在java方法需要一個字符串並且實際上獲取一個字符串。所以它不會給我錯誤例外和所有壞的東西 – ErikBrandsma 2014-11-21 13:17:11

0

修剪第一和最後的支架;

jsonArrayString = jsonArrayString.subStr(1,jsonArrayString.length()-1);

你會得到 「A1」, 「A2」, 「A3」, 「A4」

然後用String的分裂功能。

String[] convertedArray= jsonArrayString.split(",");