在Java上获取XML或Json的代码

在Java上获取XML或Json的代码,java,android,json,android-asynctask,Java,Android,Json,Android Asynctask,我正在尝试获取来自这些*链接*的数据 我尝试了很多方法,但最后当它通过这一行时总是给我错误JSONObject jsonObj=newjsonobject(json) OkHttpClient=new-OkHttpClient(); Request Request=newrequest.Builder() .url(“http://********/swapi/api/data/xml”) .build(); 响应=空; 试一试{ responses=client.newCall(reque

我正在尝试获取来自这些*链接*的数据

我尝试了很多方法,但最后当它通过这一行时总是给我错误
JSONObject jsonObj=newjsonobject(json)

OkHttpClient=new-OkHttpClient();
Request Request=newrequest.Builder()
.url(“http://********/swapi/api/data/xml”)
.build();
响应=空;
试一试{
responses=client.newCall(request.execute();
json=responses.body().string();
System.out.println(“JSON:+JSON”);
试一试{
JSONObject jsonObj=新的JSONObject(json);
//JSONObject obj=新的JSONObject(JSONObject);
//获取JSON数组节点
JSONArray contacts=jsonObj.getJSONArray(“Carro”);
对于(int i=0;i
这是在该行中断时抛出的错误**long**

01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:org.json.JSONException:Value[{“iditelisis”:101,“observationes”:“Nitin”,“fecha”:null,“carro”:null,“carro”:null,“cargapkt”:“sd5”},{“iditelisis”:101,“observationes”:“Nitin”,“fecha”:null,“cargapkt”:“sd5”}java.lang类型的字符串无法转换为JSONObject 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at org.json.json.typeMismatch(json.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:org.json.JSONObject.(JSONObject.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:org.json.JSONObject.(JSONObject.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at pa.com.tropigas.pedidostf.CarrosActivity$POST.doInBackground(CarrosActivity.java:114) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at pa.com.tropigas.pedidostf.CarrosActivity$POST.doInBackground(CarrosActivity.java:65) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at android.os.AsyncTask$2.call(AsyncTask.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at java.util.concurrent.FutureTask.run(FutureTask.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf W/System.err:at java.lang.Thread.run(Thread.java) 01-11 10:04:47.487 6541-7024/pa.com.tropigas.pedidostf I/System.out:Error:org.json.JSONException:Value[{“iditelisis”:101,“observationes”:“Nitin”,“fecha”:null,“carro”:null,“cargapkt”:“sd5”},{“iditelisis”:101,“observationes”:“Nitin”,“fecha”:null,“cargapkt”:“sd5”}java.lang类型的字符串无法转换为JSONObject


我使用**邮递员**检查**Json**的结果,以及**日志**的**Json**的结果,所有内容都表明**Json**在结构上是正确的。我不明白在尝试将其转换为*Json*对象时会出现什么中断*

Its,因为您得到的是
JsonArray
不是
JsonObject

试试这个

JsonArray arr = new JsonArray(obtained_result);
然后尝试使用
getJSONObject(index)
方法从
arr
获取
JsonObject

例如:

JsonArray arr = new JsonArray(obtained_result);
   for(int i = 0; i< arr.length(); i++){
   JsonObject ob = arr.getJSONObject(i);
}
JsonArray arr=新的JsonArray(获得的结果);
对于(int i=0;i
再次查看数据。数据不是纯的JSON。它被包装在
标签中。因此,它的
JSON
包装在
XML
中。一旦你得到了
JSON
,你就可以使用@Jayanths答案了。
JsonArray arr = new JsonArray(obtained_result);
   for(int i = 0; i< arr.length(); i++){
   JsonObject ob = arr.getJSONObject(i);
}