从json代码中删除javascript对象变量名称文本

时间:2016-03-20 10:58:02

标签: javascript java json

我有一个String变量,用于存储JavaScript对象的文字文本:

String jsString = "mainData = {"name":"John", "id":"12345"}"

Java中是否有JSON方法(或任何方法)将删除" mainData ="字符串的一部分,只留下JavaScript数据?像这样:

newString = someMethod(jsString);
JSONObject jsonObject = new JSONObject(newString); //newString = "{"name":"John", "id":"12345"}"

1 个答案:

答案 0 :(得分:3)

String#replaceFirst

jsString = jsString.replaceFirst("^[^{]+", "");

Live Example

这将删除任何字符作为第一个{之前的字符串的开头。它假设字符串包含JSON,其中最外层的东西是一个对象(而不是数组或只是一个值),尽管它可以很容易地调整而不是做出这个假设。例如,这个版本:

jsString = jsString.replaceFirst("^\\s*[A-Za-z0-9_$]+\\s*=\\s*", "");

Live Example

删除了一系列字母,数字,_$,可选地由空格包围,以及后面的=,可能后跟空格,位于字符串的开头。现在,这不是有效JavaScript标识符字符的完整列表(该列表),但您明白了。