Java 删除JSONArray中的所有引号 JSONArray error=data.getJSONArray(“error”); 对于(int it=0;it
我知道有什么问题。您没有打印Java 删除JSONArray中的所有引号 JSONArray error=data.getJSONArray(“error”); 对于(int it=0;it,java,arrays,json,solr,Java,Arrays,Json,Solr,我知道有什么问题。您没有打印replaceAll调用的结果。要从json数组输出中删除所有引号,请尝试以下操作 JSONArray error = data.getJSONArray("error"); for (int it=0; it<error.length(); it++){ error.toString().replaceAll("\"", " "); System.out.pri
replaceAll
调用的结果。要从json数组输出中删除所有引号,请尝试以下操作
JSONArray error = data.getJSONArray("error");
for (int it=0; it<error.length(); it++){
error.toString().replaceAll("\"", " ");
System.out.println(error);
}
请注意,这也将删除数组值中的任何引号,这可能不是您想要的。例如,
[“cool says\'meow\”,“stuff”]
的输出将是[cool says\meow\,stuff]
。如果您只想要字符串值,我建议查看文档中的JSONArray::get(int)
和JSONArray::length()
看起来您正试图打印一个json字符串数组。如果您替换所有引号,它也会替换字符串中的引号并扭曲编码的值。如果有人对我这样做,我不会很高兴:)。例如,看看这个json
JSONArray error = data.getJSONArray("error");
System.out.println(error.toString().replaceAll("\"", " "));
不仅引号会丢失,而且度的特殊unicode字符可能看起来不正确(15°
)。要以原始形式返回值,您需要实现整个!这是很多工作,可能不是你想做的。我以前做过,这不容易
幸运的是,我们已经在使用一个库来为我们完成所有这些:)只需使用org.json
package。它拥有正确编码和解码值所需的一切。你不认为你必须自己做所有的分析,是吗?要以原始形式打印字符串,可以这样做
[
"hello",
"cat says \"meow\"",
"dog says \"bark\"",
"the temperature is 15\u00B0"
]
/**使用这些导入
*
*导入org.json.JSONArray;
*导入org.json.JSONObject;
*导入org.json.JSONException;
**/
JSONArray ja=新的JSONArray();
//向数组中添加一些字符串
ja.put(“你好”);
放(“猫说”喵“);
ja.put(“温度为15\u00B0”);
//添加一个int
ja.put(1);
//添加对象
JSONObject jo=新的JSONObject();
乔·普特(“酷”、“酷”);
ja.put(jo);
//循环并仅打印字符串
对于(int i=0;i
要与原始代码一起使用,只需将
ja
替换为您自己的变量即可。注意,在catch子句中,我添加了一些注释,显示了可以用于读取已解析json对象中的值的其他方法。请提供json示例。你认为toString().replaceAll(…)
有什么作用?你为什么这么认为?“它没有发生”不是很具体,怎么了?此外,您在数组中循环,甚至从未引用indexCan。请修改您的问题,以解释给定特定输入的预期输出?非常感谢。您能告诉我如何从数组中删除反斜杠和双引号吗?我想删除这个\“这两个字符以及所有的前导和尾随空格。我在上面的代码中给出了一个双斜杠,但它不起作用。它显示编译器错误。用四个反斜杠字符调用replaceAll
。replaceAll(“\\\\”,”)
。你确定这就是你想要的吗?我从来没有发送过这样的代码来修改json字符串,因为我通常希望保留存储在数组项中的值。如果json对象是[“酷说”喵“]
,那么预期值不应该是酷说”喵“
?是的,在这种情况下我应该替换\”这只需要双引号,对吗?不仅如此,还必须替换json规范中列出的所有unicode字符。这要复杂得多,需要很多代码。请参阅我的其他解决方案,假设您希望以原始形式打印值。是否有人可以帮助我编辑此问题?我被阻止发布新问题,我有一些疑问,需要澄清experts@user3222718,我只有几个建议调皮地咧嘴笑。解决问题总是从找出问题的原因开始。你对这个问题的描述和标题太宽泛了。给出预期产出的例子。搜索和研究——需要努力。在Stack Overflow的/help部分有一个标准列表,定义了如何提出一个好问题。假装你在和一位忙碌的同事说话:实际上可以多说几句话。拼写、语法和标点符号:需要努力。在代码之前介绍问题:需要工作。
/** use these imports
*
* import org.json.JSONArray;
* import org.json.JSONObject;
* import org.json.JSONException;
**/
JSONArray ja = new JSONArray();
// add some strings to array
ja.put("hello");
ja.put("cat says \"meow\"");
ja.put("the temperature is 15\u00B0");
// add an int
ja.put(1);
// add an object
JSONObject jo = new JSONObject();
jo.put("cool", "cool");
ja.put(jo);
// loop and print only strings
for (int i = 0; i < ja.length(); ++i) {
try {
// ignore null values
if (!ja.isNull(i)) {
System.out.println(ja.getString(i));
}
} catch (JSONException e) {
// not a string
// try ja.getBoolean
// try ja.getDouble
// try ja.getInt
// try ja.getJSONArray
// try ja.getJSONObject
// try ja.getLong
}
}