我需要将 JavaScript 中生成的 JSON 转换为 Java 中的 JSONArray - 这里的上下文是用于混合 Android 应用程序的 Cordova 插件。以下字符串
"[\"9784142605765949528\",2869,264,7]"
导致 Java 提示。它返回消息
["9784142605765949528",2869,264,7] of type java.lang.String cannot be converted to JSONArray
我不明白为什么会发生这种情况。上面的第一个数组元素是一个字符串,尽管它看起来像一个数字。这是因为我在 JS 中使用自定义 64 位整数实现,它以字符串形式返回其值。
解析此 JSON 的 Java 代码部分如下
try
{
Feedback.postBackInfo("LWPD4 " + lwpd[4]);
JSONArray hXYZ = new JSONArray(lwpd[4]);
Feedback
是我用来帮助调试的内部实用程序。我在下面显示的 JSON 来自对 Feedback
的调用,并且是后续的 new JSONArray()
抛出此错误
我看不出这里出了什么问题 - 字符串是有效的 JSON。
最佳答案
我相信您可能会对您尝试解析的输入字符串感到困惑。下面的代码工作得很好。
import org.json.JSONArray;
public class JsonTest {
public static void main(String[] args) throws Exception {
String json = "[\"9784142605765949528\",2869,264,7]";
JSONArray result = new JSONArray(json);
System.out.println(result);
}
}
由于上述工作有效,我怀疑您没有尝试解析您认为正在尝试解析的字符串。 lwpd[4]
变量的实际值是多少?
关于Java JSONArray 抛出意外异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50334456/