Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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
Java IllegalStateException:应为BEGIN\u对象,但为BEGIN\u数组_Java_Android_Json - Fatal编程技术网

Java IllegalStateException:应为BEGIN\u对象,但为BEGIN\u数组

Java IllegalStateException:应为BEGIN\u对象,但为BEGIN\u数组,java,android,json,Java,Android,Json,我正在努力学习MVP。我在教程和YouTube视频的帮助下编写了一段代码。首先,我使用了Json2Class插件。在那之后,我创建了一个Json服务器,只是为了测试RESTAPI中的Json文件 { "posts": [{ "userId": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",

我正在努力学习MVP。我在教程和YouTube视频的帮助下编写了一段代码。首先,我使用了Json2Class插件。在那之后,我创建了一个Json服务器,只是为了测试RESTAPI中的Json文件

{
"posts": [{
        "userId": 1,
        "id": 1,
        "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
        "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
    },
    {
        "userId": 1,
        "id": 2,
        "title": "qui est esse",
        "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
    },
    {
        "userId": 1,
        "id": 3,
        "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
        "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
    },
    {
        "userId": 1,
        "id": 4,
        "title": "eum et est occaecati",
        "body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
    }]}
下面是json文件的一个概览。我通过插件转换成Java类。那么在Presenter中我有这个方法

    public void getPosts() {
    getView().onShowDialog("Loading posts.....");
    Observable<PostsResponse> postsResponseObservable = mApiService.getPosts();
    subscribe(postsResponseObservable, this);
}
一切都提供了,但这里是GsonConverterFactory:

    @Singleton 
@Provides 
GsonConverterFactory provideGsonConverterFactory(){
    return GsonConverterFactory.create();
}
最后是地图绘制者:

    public List<Post> mapPosts(PostsResponse response){
    List<Post> postList = new ArrayList<>();
    if (response != null) {
        PostsResponsePosts[] responsePosts = response.getPosts();
        if (responsePosts != null) {
            for (PostsResponsePosts post : responsePosts) {
                Post mPost = new Post();
                mPost.setUserId(post.getUserId());
                mPost.setId(post.getId());
                mPost.setTitle(post.getTitle());
                mPost.setBody(post.getBody());
                postList.add(mPost);
            }
        }
    }
    return postList;
}
public List mapPosts(PostsResponse){
List postList=new ArrayList();
if(响应!=null){
PostsResponsePosts[]responsePosts=response.getPosts();
if(responsePosts!=null){
for(PostsResponsePosts post:responsePosts){
Post mPost=新Post();
mPost.setUserId(post.getUserId());
mPost.setId(post.getId());
mPost.setTitle(post.getTitle());
mPost.setBody(post.getBody());
postList.add(mPost);
}
}
}
返回postList;
}

但是我得到了
非法状态异常:应该是BEGIN\u对象,但在第1行第2列路径$
处是BEGIN\u数组。有什么解决办法吗?非常感谢。

我认为问题出在mApiService.getPosts()中;方法。 请从mApiService添加代码。也许你有这样的想法:

Call<YourClass> getPosts();
调用getPosts();
换成

Call<List<YourClass>> getPosts();
调用getPosts();

对不起,我的英语…

我认为问题出在mApiService.getPosts()中;方法。 请从mApiService添加代码。也许你有这样的想法:

Call<YourClass> getPosts();
调用getPosts();
换成

Call<List<YourClass>> getPosts();
调用getPosts();

对不起,我的英语…

因为我使用的是Json服务器,所以我不得不更改Json文件

{
    "posts": [{
            "userId": 1,
            "id": 1,
            "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
            "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
        },
        {
            "userId": 1,
            "id": 2,
            "title": "qui est esse",
            "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
        }
}


因为我使用的是Json服务器,所以我不得不将Json文件从

{
    "posts": [{
            "userId": 1,
            "id": 1,
            "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
            "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
        },
        {
            "userId": 1,
            "id": 2,
            "title": "qui est esse",
            "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
        }
}


我没有使用Call函数,我使用的是observeable。这里看一看:
@GET(“/posts”)可观察的getPosts()
我试图将其更改为
observatable getPosts()
,但它不起作用。我没有使用Call函数,我使用的是observatable。这里看一看:
@GET(“/posts”)可观察的getPosts()
我试图将其更改为
可观察的getPosts()
,但没有成功。请共享您的
Post
类。另外,看看这将有助于您了解模型类的错误。您可以共享PostsResponsePosts模型吗?也可能是您的服务器返回了与您共享的JSON不同的内容,请务必检查我是否也共享了下面的类。我解决了。这是我的json文件。我将分享我的解决方案。分享你的
Post
课程。另外,看看这将有助于您了解模型类的错误。您可以共享PostsResponsePosts模型吗?也可能是您的服务器返回了与您共享的JSON不同的内容,请务必检查我是否也共享了下面的类。我解决了。这是我的json文件。我将分享我的解决方案。