2016-09-08 53 views
1

我正在使用net.minidev.json將字符串解析爲JSON對象。這裏是我的代碼:JSON解析器僅獲取JSON的一部分

JSONObject obj = (JSONObject) JSONValue.parse(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} 

你可以看到,解析方法拾取了我傳入的字符串的一部分。

這個錯誤爲什麼會發生?

+0

您的字符串看起來不正確JSON – vsminkov

+0

我想我明白了。你的意思是**代碼**和** cookie **都應該用引號括起來? –

+0

'「dirs」:[...'和''code「:0'和'」cookie「:」... ==「' –

回答

0

正如所指出的vsminkov:

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

{…}塊不是有效的JSON字典對象。一個JSON字典包含密鑰:對。這意味着您的第一個密鑰在外部字典中實際上是字符串dirs=[{"\"uid\",這意味着外部字典在files之前結束於}