簡體   English   中英

將JSON數組[array [String]]轉換為Java數組

[英]Convert JSON array[array[String]] to Java array

我有一個JavaScript JSON陣列[數組[字符串]所謂jsonArrayJSP1.jsp

我將jsonArray為String jsonArrayStr使用JSON.stringify(jsonArray)JSP1.jsp

JSP2.jsp這種方式調用另一個JSP JSP2.jsp時傳遞了jsonArrayStr作為參數-

"JSP2.do?jsonArrayStr="+jsonArrayStr

JSP2.jsp ,我正在這樣做-

String jsonArrayStr = request.getParameter("jsonArrayStr");

現在如何將jsonArrayStr轉換為Java數組JSP2.jsp不包含任何JavaScript代碼)

摘要-

我有一個一個JavaScript JSON陣列JSP1.jsp ,我想訪問作為一個正常的Java數組/數組列表JSP2.jsp 我該如何實現?

好的,因此在Java字符串中存儲了一個以JSON表示的二維字符串數組:

[["a", "b", "c"],["x"],["y","z"]]

您需要以某種方式將值解析或“反序列化”為Java String [] []。 您可以使用類似http://www.json.org/java/index.htmlhttp://jackson.codehaus.org/中的庫,也可以嘗試手動進行操作。 手動操作可能會有些棘手,但並非不可能。 json.org庫非常簡單,可能已經足夠了。 該代碼將是這樣的(我還沒有嘗試過/測試過):

JSONArray jsonArray = new JSONArray(jsonArrayStr); // JSONArray is from the json.org library
String[][] arrayOfArrays = new String[jsonArray.length()][];
for (int i = 0; i < jsonArray.length(); i++) {
    JSONArray innerJsonArray = (JSONArray) jsonArray.get(i);
    String[] stringArray = new String[innerJsonArray.length()];
    for (int j = 0; j < innerJsonArray.length(); j++) {
        stringArray[j] = innerJsonArray.get(j);
    }
    arrayOfArrays[i] = stringArray;
}

像這樣

ArrayList<String> strings= new ArrayList<String>();     
JSONArray jsonArray = (JSONArray)jsonObject; 
if (jsonArray != null) { 
   int len = jsonArray.length();
   for (int i=0;i<len;i++){ 
    list.add(jsonArray.get(i).toString());
   } 
} 

String[] Stringarray = strings.toArray(new String[strings.size()]);

暫無
暫無

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

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