我需要将JavaScript中生成的JSON转换为Java中的JSONArray - 这里的上下文是混合Android应用程序的Cordova插件。以下字符串
"[\"9784142605765949528\",2869,264,7]"
导致Java抱怨。它带回消息
[" 9784142605765949528",2869,264,7] 类型java.lang.String无法转换为JSONArray
我不明白为什么会发生这种情况。上面的第一个数组元素是一个字符串,虽然它看起来像一个数字。这是因为我在JS中使用自定义64位整数实现,它将其值作为字符串返回。
我的Java代码解析此JSON的部分如下
try
{
Feedback.postBackInfo("LWPD4 " + lwpd[4]);
JSONArray hXYZ = new JSONArray(lwpd[4]);
Feedback
是一个内部工具,用于帮助我进行调试。我在下面显示的JSON来自对Feedback
的调用,后续new JSONArray()
引发此错误
我没有看到这里有什么问题 - 字符串是有效的JSON。也许这里有人可以帮忙吗?
答案 0 :(得分:1)
我相信您可能会对您尝试解析的输入字符串感到困惑。以下代码可以正常工作。
file
由于上述工作,我怀疑你没有尝试解析你认为你试图解析的字符串。您的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);
}
}
变量的实际价值是多少?