Java 尝试解析JSON字符串时出错。org.json.JSONException:JSONArray文本必须以';[';
我试图解析一个JSON字符串,以便将其转换为一个数组,并通过索引遍历每个元素。 下面是我的代码:Java 尝试解析JSON字符串时出错。org.json.JSONException:JSONArray文本必须以';[';,java,arrays,json,parsing,mapping,Java,Arrays,Json,Parsing,Mapping,我试图解析一个JSON字符串,以便将其转换为一个数组,并通过索引遍历每个元素。 下面是我的代码: String body=“{\'user\”:\“d26d0op3-7da5-6ad8\”,“pass\”:\“12784949-2b8c-827d\”; ArrayList stringArray=新的ArrayList(); JSONArray JSONArray=新JSONArray(主体); for(int i=0;i
String body=“{\'user\”:\“d26d0op3-7da5-6ad8\”,“pass\”:\“12784949-2b8c-827d\”;
ArrayList stringArray=新的ArrayList();
JSONArray JSONArray=新JSONArray(主体);
for(int i=0;i
运行此代码时,出现以下错误:
Exception in thread "main" org.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]
Exception in thread "main" org.json.JSONException: JSONArray[0] is not a String.
我尝试用以下不同的方式格式化我的身体:
String body=“[{\'user\”:\“d26d0op3-7da5-6ad8\”,“instanceId\”:\“12784949-2b8c-827d\”}];
但是我得到了以下错误:
Exception in thread "main" org.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]
Exception in thread "main" org.json.JSONException: JSONArray[0] is not a String.
如何正确解析JSON?您可能想了解一下JSON格式。试试看 在第一种情况下,
body
是一个JSON“对象”,而不是数组。这类似于字典或键:值对映射。JSON对象用{和}分隔
要分析此正文,请使用:
JSONObject job = new JSONObject(body);
String username = job.getString("user");
我想这可能就是你想要的
在第二种情况下,主体是一个包含一个JSON对象的JSON数组
如果您想要一个字符串的JSON数组,它应该是这样的:
body = "[ \"a\", \"b\", \"c\" ]";
整数数组如下所示:
body = "[ 1,2,3,4 ]";
您可以使用该方法将json字符串中的值解析为某个对象。在本例中,该值可以是映射
:
String body=“{\'user\”:\“d26d0op3-6ad8\”,“pass\”:\“12784949-827d\”;
Map Map=newObjectMapper().readValue(body,Map.class);
System.out.println(map);//{user=d26d0op3-6ad8,pass=12784949-827d}
如果您需要一些对象的列表:
String body=“[{\'user\':\'d26d0op3-6ad8\',\'pass\':\'12784949-827d\'””;
List List=newObjectMapper().readValue(body,List.class);
System.out.println(list);//[{user=d26d0op3-6ad8,pass=12784949-827d}]
字符串主体=“{”user:“d26d0op3-6ad8”,“pass:“12784949-827d”}”不是数组
您可以像这样转换为json数组
String body=“[{”user:“d26d0op3-7da5-6ad8”,“pass:“12784949-2b8c-827d”}];添加
[
和]
时的问题是jsonArray.getString(i)
。数组的一个元素是JSONObject
,而不是String