Java 将字符串转换为jsonArray
我的字符串:Java 将字符串转换为jsonArray,java,android,json,Java,Android,Json,我的字符串: String bu = "[{\"name\":\"Personal Care\",\"created_at\":\"2018-04-29T10:55:37+00:00\",\"id\":2},{\"name\":\"Domestic Appliances\",\"created_at\":\"2017-04-23T19:47:39+00:00\",\"id\":3},{\"name\":\"Coffee\",\"created_at\":\"2017-11-08T20:46:1
String bu = "[{\"name\":\"Personal Care\",\"created_at\":\"2018-04-29T10:55:37+00:00\",\"id\":2},{\"name\":\"Domestic Appliances\",\"created_at\":\"2017-04-23T19:47:39+00:00\",\"id\":3},{\"name\":\"Coffee\",\"created_at\":\"2017-11-08T20:46:14+00:00\",\"id\":4}]"
我用于将字符串转换为JsonArray的方法:
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(bu);
Log.v("s" , jsonElement.getAsString());
JsonArray jsonArray = jsonElement.getAsJsonArray();
我在日志中获取的错误:
06-21 18:39:43.265 9128-9128/com.harit.abs E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.harit.abs, PID: 9128
java.lang.IllegalStateException: This is not a JSON Array.
at com.google.gson.JsonElement.getAsJsonArray(JsonElement.java:106)
at com.harit.abs.Sync_Activity$2.onCompleted(Sync_Activity.java:95)
at com.harit.abs.Sync_Activity$2.onCompleted(Sync_Activity.java:80)
at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java:107)
at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:141)
at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:128)
at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java:246)
at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java:60)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
这里是JSONObject,所以请更改
JSONArray jsonArray = new JSONArray(readlocationFeed);
符合下列要求
JSONObject jsnobject = new JSONObject(readlocationFeed);
之后
JSONArray jsonArray = jsnobject.getJSONArray("locations");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject explrObject = jsonArray.getJSONObject(i);
}
JSONArray-JSONArray=jsnobject.getJSONArray(“位置”);
for(int i=0;i
这是一个JSONArray。。。。你也可以试试这样的。。。当然,在我看来,这要简单得多
试试这个
String bu=“[{\“name\”:\”个人
Care\“,”创建于\“:\”2018-04-29T10:55:37+00:00\“,”id\“:2},{\”姓名\“:\”国内
电器“,”创建地点“:”2017-04-23T19:47:39+00:00“,”id“:3},{”姓名“:”咖啡“,”创建地点“:”2017-11-08T20:46:14+00:00“,”id“:4}”
试试看{
JSONArray数组=新的JSONArray(bu);
System.out.println(数组);
对于(int i=0;i
上述代码将打印出以下内容:
[{“姓名”:“个人”
Care,“创建于”:“2018-04-29T10:55:37+00:00”,“id:2},{“姓名”:“国内”
电器,创建时间:2017-04-23T19:47:39+00:00,id:3},{“名称:”咖啡,创建时间:2017-11-08T20:46:14+00:00,id:4}]
个人护理
国内的
用具
咖啡
对meCan confirm来说效果很好,没有任何问题。这不是问题。Op似乎使用gson而不是jackson
try {
JSONArray array = new JSONArray(bu);
System.out.println(array);
for (int i = 0; i < array.length(); i++) {
System.out.println(array.getJSONObject(i).getString("name"));
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}