java - 如何将字符串转换为JsonArray?

标签 java android json string

我正在尝试操纵 JsonArray 使其看起来像另一个 JsonArray。 我对现有的 JsonArray 实现了一些字符串方法。现在我想把它放回另一个 JsonArray 中。

代码

                Log.d("defaultArrayShuffled", defaultArray.toString());

                String temp = defaultArray.toString();
                String temp1= temp.replaceAll("_white_", "_");
                Log.d("temp1", temp1);

                JSONObject temp2 = new JSONObject();
                temp2.put("arr", temp1);
                Log.d("temp2", temp2.toString());
                replacingArray = temp2.getJSONArray("arr");

LogCAT

07-03 19:16:37.310: D/defaultArrayShuffled(8863): ["findhidden\/o_white_64.png","findhidden\/x_white_64.png","findhidden\/f_white_64.png","findhidden\/b_white_64.png","findhidden\/a_white_64.png","findhidden\/g_white_64.png","findhidden\/p_white_64.png","findhidden\/u_white_64.png","findhidden\/n_white_64.png","findhidden\/j_white_64.png","findhidden\/y_white_64.png","findhidden\/q_white_64.png","findhidden\/l_white_64.png","findhidden\/t_white_64.png","findhidden\/h_white_64.png","findhidden\/v_white_64.png","findhidden\/r_white_64.png","findhidden\/k_white_64.png","findhidden\/m_white_64.png","findhidden\/c_white_64.png","findhidden\/z_white_64.png","findhidden\/s_white_64.png","findhidden\/w_white_64.png","findhidden\/d_white_64.png","findhidden\/i_white_64.png","findhidden\/e_white_64.png"]
07-03 19:16:37.310: D/temp1(8863): ["findhidden\/o_64.png","findhidden\/x_64.png","findhidden\/f_64.png","findhidden\/b_64.png","findhidden\/a_64.png","findhidden\/g_64.png","findhidden\/p_64.png","findhidden\/u_64.png","findhidden\/n_64.png","findhidden\/j_64.png","findhidden\/y_64.png","findhidden\/q_64.png","findhidden\/l_64.png","findhidden\/t_64.png","findhidden\/h_64.png","findhidden\/v_64.png","findhidden\/r_64.png","findhidden\/k_64.png","findhidden\/m_64.png","findhidden\/c_64.png","findhidden\/z_64.png","findhidden\/s_64.png","findhidden\/w_64.png","findhidden\/d_64.png","findhidden\/i_64.png","findhidden\/e_64.png"]
07-03 19:16:37.310: D/temp2(8863): {"arr":"[\"findhidden\\\/o_64.png\",\"findhidden\\\/x_64.png\",\"findhidden\\\/f_64.png\",\"findhidden\\\/b_64.png\",\"findhidden\\\/a_64.png\",\"findhidden\\\/g_64.png\",\"findhidden\\\/p_64.png\",\"findhidden\\\/u_64.png\",\"findhidden\\\/n_64.png\",\"findhidden\\\/j_64.png\",\"findhidden\\\/y_64.png\",\"findhidden\\\/q_64.png\",\"findhidden\\\/l_64.png\",\"findhidden\\\/t_64.png\",\"findhidden\\\/h_64.png\",\"findhidden\\\/v_64.png\",\"findhidden\\\/r_64.png\",\"findhidden\\\/k_64.png\",\"findhidden\\\/m_64.png\",\"findhidden\\\/c_64.png\",\"findhidden\\\/z_64.png\",\"findhidden\\\/s_64.png\",\"findhidden\\\/w_64.png\",\"findhidden\\\/d_64.png\",\"findhidden\\\/i_64.png\",\"findhidden\\\/e_64.png\"]"}

更多 LOGCAT

07-03 19:16:37.320: W/System.err(8863):     at org.json.JSON.typeMismatch(JSON.java:96)

最佳答案

从temp2的日志输出来看,arr的json类型为String。因此,如果您尝试从中获取 JSONArray,则会得到 typeMismatch。

看看下面的代码是否适合您。 JSONObject 的构造函数可以采用包含对象的 JSON 编码字符串。所以我们用它来创建 temp2。

Log.d("defaultArrayShuffled", defaultArray.toString());

String temp = defaultArray.toString();
String temp1= temp.replaceAll("_white_", "_");
Log.d("temp1", temp1);

JSONObject temp2 = new JSONObject("{ \"arr\" : " + temp1 + "}");
//temp2.put("arr", temp1);
Log.d("temp2", temp2.toString());
replacingArray = temp2.getJSONArray("arr");

希望有帮助。

关于java - 如何将字符串转换为JsonArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11312617/

相关文章:

java - 我的大整数计算器没有按计划工作,任何 java 开发人员都可以帮助我吗?

android - 适用于 Android 的 STL Vector、deque 或容器?

c# - 用 Servicestack.Text 重构类型对象的属性

java - 如何从 Java 中的无符号字节中获取 float ?

java - 使用 Java 更新 html 表单

java - Spring 3.1 contextInitializerClasses 不能使用 web.xml Context-Param 在 WebLogic 10.3.6 上工作

Android sqlite 插入错误代码 19 : constraint failed

java - 从纬度和经度获取方向

javascript - 使用 Javascript 将 JSON 嵌套到编号的 HTML 表

json - 看起来当我执行 fs.writeFile() 时,更改的文件会重新启动 nodemon。怎么让它不重启?