迭代包含数组的json值以选择图像字符串

问题描述 投票:0回答:2

我能够获取db的值并将其传递给字符串数组,如图所示

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

请问我怎样才能做到这一点

java arrays string
2个回答
0
投票

根据您的代码和解释,您似乎是JSON对象“images”是以下字符串:

{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 ..,您的代码应该像这样检索路径的值

我删除了字符串中的额外反斜杠。

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

0
投票

如果您知道您的图像文件名将始终格式如下:

{path}/{filename}

然后有一种简单的技术来查找文件名。

  1. 找到字符串中的最后一个斜杠(/)字符。
  2. 文件名是最后一个斜杠字符后面的所有内容。

例如:

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

“path”值为“http://10.0.2.2:88//web/uploads/images/”,“filename”值为“yi6ej6f524bepyujh49y.png”

© www.soinside.com 2019 - 2024. All rights reserved.