Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法解析json(离子)_Android_Android Json_Ion - Fatal编程技术网

Android 无法解析json(离子)

Android 无法解析json(离子),android,android-json,ion,Android,Android Json,Ion,我使用我的图书馆项目 作者举了一个例子: public static class Tweet { public String id; public String text; public String photo; } public void getTweets() throws Exception { Ion.with(context) .load("http://example.com/api/tweets") .as(new TypeTok

我使用我的图书馆项目

作者举了一个例子:

public static class Tweet {
    public String id;
    public String text;
    public String photo;
}

public void getTweets() throws Exception {
    Ion.with(context)
    .load("http://example.com/api/tweets")
    .as(new TypeToken<List<Tweet>>(){})
    .setCallback(new FutureCallback<List<Tweet>>() {
       @Override
        public void onCompleted(Exception e, List<Tweet> tweets) {
          // chirp chirp
        }
    });
}
有助于了解问题所在?我在服务器上的回答:

{"name":"Vasya","soname":"Pupkin","age":"25","country":"Russian Federation"}{"name":"Iliya","soname":"Strelnikov","age":"43","country":"Kazahstan"}

可能不是正确的数据格式,库无法理解?

库希望从url接收
JsonArray
。确保获得
JsonArray
。其次,
result.get(0).name
有时会返回
null指针
,原因是应该首先检查请求过程中是否发生错误。这可以通过
onCompleted
方法中的参数
e
找到。然后在发送到toast之前,您需要检查
列表
是否包含元素,因为如果
0th元素
未找到,则会出现空指针错误

onCompleted
方法中执行以下类似操作

@Override
public void onCompleted(Exception e, List<Test> result) {

   //do stuff with the result or error
   String msg;
   if(e != null) {
       msg = "Error occured";
   }else if(result.size()>0){
       msg = "Received 0 elements";
   }else{
       msg = result.get(0).name;
   }

   Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show();
}
@覆盖
未完成公共作废(例外e,列表结果){
//对结果或错误进行处理
串味精;
如果(e!=null){
msg=“发生错误”;
}else if(result.size()>0){
msg=“接收到0个元素”;
}否则{
msg=result.get(0).name;
}
Toast.makeText(getActivity(),msg,Toast.LENGTH_LONG).show();
}

您的响应是否已完成,因为它在JSONLINT中显示json格式错误,并且示例没有指定哪一行是作者。所以我无法理解。12-22 06:08:41.218 577-577/com.testlist.pavel.transportercity D/ionmy﹕ 由于示例未指定获取作者的行,因此发生错误。因此,我无法理解。我无法理解您的注释:-/java.lang.IllegalStateException:应为BEGIN_数组,但为BEGIN_对象。我想说的是,我不理解从服务器获得的行的外观。在我的例子中,这个错误表明它需要一个jsonArray,而得到的是jsonObject。确保您的url返回jsonArray。jsonArray的格式应该是
[{},{},{}]
{"name":"Vasya","soname":"Pupkin","age":"25","country":"Russian Federation"}{"name":"Iliya","soname":"Strelnikov","age":"43","country":"Kazahstan"}
@Override
public void onCompleted(Exception e, List<Test> result) {

   //do stuff with the result or error
   String msg;
   if(e != null) {
       msg = "Error occured";
   }else if(result.size()>0){
       msg = "Received 0 elements";
   }else{
       msg = result.get(0).name;
   }

   Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show();
}