JSON解析器只获取JSON的一部分

时间:2016-09-08 22:34:43

标签: java json parsing

我使用net.minidev.json将String解析为JSON对象。这是我的代码:

JSONObject obj = (JSONObject) JSONValue.parse(s);

字符串 s 如下所示:

{dirs=[{"uid":11215,"ctime":1423258351,"gid":050,"name":"video","mtime":1423258351}], files=[{"mimetype":"application\/json","name":"file.txt","checksum":"d995a1c6b9ba371c2273f209d6659253bf457b3fa047ce62dd8274ac959c8a99","ctime":1434752293,"gid":050,"mtime":1434752293,"size":10,"uid":12020}], code=0, cookie=ODlw5jPP19125==}

解析后, obj 如下所示:

{"dirs=[{\"uid\"":11215,"gid":050,"name":"video","ctime":1423258351,"mtime":1423258351}

你可以看到解析方法只是我传入的字符串的一部分。

为什么会发生这种错误?

1 个答案:

答案 0 :(得分:0)

正如vsminkov所指出的那样:

{dirs=[{"uid":11215,…}], files=[…], code=0, cookie=ODlw5jPP19125==}

外部{…}块不是有效的JSON字典对象。 JSON字典由密钥 : 对组成。这意味着外部字典中的第一个实际上是字符串dirs=[{"\"uid\",这意味着外部字典在}之前的files结束。