2013-08-29 20 views
0

我有一个像下面这样的字符串响应,它是一个无效的json,因为它包含"obj13="。我想将它转换为JSONObject(JAVA)并使用它。是否有任何好方法将它转换为JSONObject而不使用字符串拆分操作。如何将无效的JSON字符串转换为Java中的JSONObject?

obj13={ 
    players: [ 
    { 
     name: "rocky", 
     place: "brazil", 
     age: "21", 
    }, 
    { 
     name: "andy", 
     place: "New Zealand", 
     age: "23", 
    } 
    ] 
} 
+2

分离伪造前缀有什么问题? –

+0

@HotLicks我可以在javascript中使用eval(String)将提到的字符串转换为对象并使用它们。我想也许在JAVA中会有某种东西可以处理这种json响应。 – user818455

+0

您可以随时编写自己的JSON解析器,或者获取一个开源源码并修改它。除此之外,没有办法做你想做的事。 Java不是Javascript。 –

回答

1

这当然是JavaScript而不是JSON。如果可以的话,我会回到服务提供商并要求提供JSON响应。

如果字符串的格式是一致的,你可以只使用:

json=json.substring(json.indexof('=')+1); 

,然后分析结果。请注意,大多数优秀的解析器应该有一个选项,允许没有引号的关键字和允许多余的逗号(mine does,但不幸的是,它不会创建JSONObject的但是较低的级别 - 它旨在构造数据结构调用者的选择,这可能是一个JSONObject,如果这是你想要的,但你必须编码它)。

如果结果可能有也可能没有分配,您可能想要更有趣一点,并确保'='之前的非空白字符对JS标识符和第一个非空白字符有效是'{'。

+0

某处可能有一个解析器可以确信“=”应该被视为“:”,所以如果你用'{}'包装整个事物,它就会解析。但截断字符串以包装它一样简单。 –

相关问题