簡體   English   中英

遍歷包含數組的json值以選擇圖像字符串

[英]iterate through an a json value containing an array to pick an image string

我能夠獲取數據庫的值並將其傳遞給字符串數組,如圖所示

String[] strArrayCol = new String[6];
strArrayCol[4] = json_data.getString("images");

如果您打印以上內容,則會得到:

[{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/yi6ej6f524bepyujh49y.png"},{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/wendzj5atiks45c3zw00.png"},{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/rg04t5vcp4yxwdew677n.png"},{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/3yvy9f970vit2pxascv7.png"}]

我的嘗試是執行類似

ArrayList<String[]> imgCol...
imgCol.add(strArrayCol );

 for (String [] val : imgCol){
                                System.out.println( val[4]);
                            }

讓它打印

http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/yi6ej6f524bepyujh49y.png
http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/wendzj5atiks45c3zw00.png
http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/rg04t5vcp4yxwdew677n.png
http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/3yvy9f970vit2pxascv7.png

請我怎樣才能做到這一點

根據您的代碼和解釋,看來您是JSON對象的“圖像”是以下字符串:

{images:[{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/yi6ej6f524bepyujh49y.png"},{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/wendzj5atiks45c3zw00.png"},{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/rg04t5vcp4yxwdew677n.png"},{"path":"http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/3yvy9f970vit2pxascv7.png"}])}

這是用於圖像值的JSONArray ..,您的代碼應像這樣以檢索path的值

我已經刪除了字符串中多余的反斜杠。

JsonImplement.parseJson("{\"images\":[{\"path\":\"http://10.0.2.2:88//web/uploads/images/yi6ej6f524bepyujh49y.png\"},{\"path\":\"http://10.0.2.2:88//web/uploads/images/wendzj5atiks45c3zw00.png\"},{\"path\":\"http://10.0.2.2:88//web/uploads/images/rg04t5vcp4yxwdew677n.png\"},{\"path\":\"http://10.0.2.2:88//web/uploads/images/3yvy9f970vit2pxascv7.png\"}]}");

這就是我用另一種方法編寫的邏輯...

JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject) parser.parse(jsonString);
JSONArray arr = (JSONArray) jsonObject.get("images");
for(int i=0;i<arr.size();i++)
{
    JSONObject obj2 = (JSONObject) arr.get(i);
    System.out.println(obj2.get("path"));
}

這將為您提供圖像路徑的輸出

http://10.0.2.2:88//web/uploads/images/yi6ej6f524bepyujh49y.png
http://10.0.2.2:88//web/uploads/images/wendzj5atiks45c3zw00.png
http://10.0.2.2:88//web/uploads/images/rg04t5vcp4yxwdew677n.png
http://10.0.2.2:88//web/uploads/images/3yvy9f970vit2pxascv7.png

如果您知道圖像文件名將始終采用以下格式:

{path}/{filename}

然后有一種簡單的技術來查找文件名。

  1. 查找字符串中的最后一個斜杠(/)字符。
  2. 文件名是最后一個斜杠字符之后的所有內容。

例如:

http:\/\/10.0.2.2:88\/\/web\/uploads\/images\/yi6ej6f524bepyujh49y.png

的“路徑”值為“ http://10.0.2.2:88//web/uploads/images/”,“文件名”值為“ yi6ej6f524bepyujh49y.png”

暫無
暫無

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

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