Java 应为BEGIN_对象,但为不带键的字符串-json

Java 应为BEGIN_对象,但为不带键的字符串-json,java,android,json,Java,Android,Json,我一般都是Android和json的初学者,我在其中一个方面有困难,需要一些帮助。我想用烂西红柿。我几乎阅读了所有内容,除了json中没有键的部分。以下是json: { “电影”:[{ “id”:“771359313”, “标题”:“哑巴和哑巴”, “年份”:2014年, “mpaa_评级”:“PG-13”, “运行时”:109, “批评家们的共识”:“, “发布日期”:{ “剧院”:“2014-11-14” }, “评级”:{ “评论家”评级:“烂”, “评论家评分”:25分, “收视率”:

我一般都是Android和json的初学者,我在其中一个方面有困难,需要一些帮助。我想用烂西红柿。我几乎阅读了所有内容,除了json中没有键的部分。以下是json:

{
“电影”:[{
“id”:“771359313”,
“标题”:“哑巴和哑巴”,
“年份”:2014年,
“mpaa_评级”:“PG-13”,
“运行时”:109,
“批评家们的共识”:“,
“发布日期”:{
“剧院”:“2014-11-14”
},
“评级”:{
“评论家”评级:“烂”,
“评论家评分”:25分,
“收视率”:“溢出”,
“观众评分”:54分
},
“大纲”:"吉姆·凯瑞和杰夫·丹尼尔斯在这部轰动一时的喜剧续集中扮演劳埃德和哈利,这部喜剧取走了这部身体喜剧,并把它踢得一塌糊涂。原版电影的导演彼得和博比·法雷利带着劳埃德和哈利踏上了一段旅途,寻找一个哈利不知道自己拥有的孩子,也不知道自己有什么责任永远,永远。法雷利兄弟与红色花岗岩电影公司的里扎·阿齐兹和乔伊·麦克法兰一起制作《哑巴和哑巴到》。与他们一起制作的还有查尔斯·B·韦斯勒和布拉德利·托马斯。环球电影公司将在美国、加拿大和选定的国际地区发行这部电影。(C)环球“,
“海报”:{
“缩略图”:http://content6.flixster.com/movie/11/17/88/11178864_tmb.jpg",
“配置文件”:http://content6.flixster.com/movie/11/17/88/11178864_tmb.jpg",
“详细”:http://content6.flixster.com/movie/11/17/88/11178864_tmb.jpg",
“原件”:http://content6.flixster.com/movie/11/17/88/11178864_tmb.jpg"
},
“节选演员阵容”:[{
“姓名”:“吉姆·凯瑞”,
“id”:“162659418”,
“人物”:[“劳埃德圣诞节”]
}, {
“姓名”:“杰夫·丹尼尔斯”,
“id”:“162654392”,
“角色”:[“哈里·邓恩”]
}, {
“姓名”:“凯瑟琳·特纳”,
“id”:“162658757”,
“字符”:[“Fraida Felcher”]
}, {
“姓名”:“Rob Riggle”,
“id”:“770750133”,
“人物”:[“特拉维斯/利平科特船长”]
}, {
“姓名”:“詹妮弗·劳伦斯”,
“id”:“770800260”,
“人物”:[“年轻的弗雷达·费尔彻”]
}],
“备用_id”:{
“imdb”:“2096672”
},
“链接”:{
“自我”:http://api.rottentomatoes.com/api/public/v1.0/movies/771359313.json",
“候补”:http://www.rottentomatoes.com/m/dumb_and_dumber_to/",
“演员阵容”:http://api.rottentomatoes.com/api/public/v1.0/movies/771359313/cast.json",
“评论”:http://api.rottentomatoes.com/api/public/v1.0/movies/771359313/reviews.json",
“类似”:http://api.rottentomatoes.com/api/public/v1.0/movies/771359313/similar.json"
}
}, {
“id”:“771355766”,
“头衔”:“大英雄6”,
“年份”:2014年,
“mpaa_评级”:“PG”,
“运行时”:93,
“批评家们的共识”:“,
“发布日期”:{
“剧院”:“2014-11-07”
},
“评级”:{
“评等”:“认证新鲜”,
“评论家评分”:89分,
“收视率”:“正直”,
“观众评分”:94分
},
《剧情简介》:“怀着沃尔特·迪斯尼动画工作室所期待的所有心灵和幽默,\“大英雄6”这是一部动作喜剧冒险片,讲述的是机器人神童滨田浩,他多亏了才华横溢的弟弟Tadashi和他们志同道合的朋友:肾上腺素瘾君子Go Go Tamago、neatnik Wasabi、化学天才Honey Lemon和粉丝Fred。当一场灾难性的转变将他们抛到了一个危险的世界中时故事情节在圣弗朗索基街头展开,希罗转向他最亲密的同伴——一个名叫Baymax的机器人,并将这群人转变成一群决心解开谜团的高科技英雄。(C)迪斯尼“,
“海报”:{
“缩略图”:http://content7.flixster.com/movie/11/17/85/11178581_tmb.jpg",
“配置文件”:http://content7.flixster.com/movie/11/17/85/11178581_tmb.jpg",
“详细”:http://content7.flixster.com/movie/11/17/85/11178581_tmb.jpg",
“原件”:http://content7.flixster.com/movie/11/17/85/11178581_tmb.jpg"
},
“节选演员阵容”:[{
“姓名”:“Ryan Potter”,
“id”:“771360315”,
“字符”:[“滨田宽”]
}, {
“名称”:“Scott Adsit”,
“id”:“406975480”,
“字符”:[“Baymax”]
}, {
“姓名”:“T.J.米勒”,
“id”:“770690115”,
“字符”:[“Fred”]
}, {
“姓名”:“钟杰米”,
“id”:“770694653”,
“字符”:[“转到Tomago”]
}, {
“姓名”:“Damon Wayans Jr.”,
“id”:“77082247”,
“字符”:[“芥末”]
}],
“备用_id”:{
“imdb”:“2245084”
},
“链接”:{
“自我”:http://api.rottentomatoes.com/api/public/v1.0/movies/771355766.json",
“候补”:http://www.rottentomatoes.com/m/big_hero_6/",
“演员阵容”:http://api.rottentomatoes.com/api/public/v1.0/movies/771355766/cast.json",
“评论”:http://api.rottentomatoes.com/api/public/v1.0/movies/771355766/reviews.json",
“类似”:http://api.rottentomatoes.com/api/public/v1.0/movies/771355766/similar.json"
}
}],
“链接”:{
“自我”:http://api.rottentomatoes.com/api/public/v1.0/lists/movies/box_office.json?limit=2&country=us",
“候补”:http://www.rottentomatoes.com/movie/box-office/"
},
“链接模板”:http://api.rottentomatoes.com/api/public/v1.0/lists/movies/box_office.json?limit={num results}&country={country code}”

}
首先,您的JSON文件无效。它应该以
{
开头,以
}
结尾。您可以使用在线验证器(如)进行检查。这就是出现此错误的原因

其次,如果您查看文件的结构,您会发现有一个名为abridged_cast的数组,其中包含一些对象(您在
AbridgedCastData
类中很好地定义了这些对象)

因此,最终结构可能是:
class A {
   //contains a list of objects B or an array of objects B
}

class B {
  //name
  //id
  //characters (list of Strings or String array)
}
public class Test {
    public static void main(String[] args) throws FileNotFoundException {
        BufferedReader br = new BufferedReader(new FileReader("myJson.json"));
        Gson gson = new Gson();
        MoviesContainer movie = gson.fromJson(br, MoviesContainer.class);
        List<AbridgedCastData> movies = movie.movies;
        System.out.println(movies);
    }
}

class MoviesContainer {
    @SerializedName("abridged_cast")
    public List<AbridgedCastData> movies;
}

class AbridgedCastData {
    String name;
    String id;
    List<String> characters;
    @Override
    public String toString() {
        return "AbridgedCastData [name=" + name + ", id=" + id
                + ", characters=" + characters + "]";
    }    
}
[AbridgedCastData [name=Jim Carrey, id=162659418, characters=[Lloyd Christmas]], AbridgedCastData [name=Jeff Daniels, id=162654392, characters=[Harry Dunne]], AbridgedCastData [name=Kathleen Turner, id=162658757, characters=[Fraida Felcher]], AbridgedCastData [name=Rob Riggle, id=770750133, characters=[Travis/Captain Lippincott]], AbridgedCastData [name=Jennifer Lawrence, id=770800260, characters=[Young Fraida Felcher]]]
response = "{" + response + "}" ;
// now parse json