我有一个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"}"
答案 0 :(得分:3)
jsString = jsString.replaceFirst("^[^{]+", "");
这将删除任何字符作为第一个{
之前的字符串的开头。它假设字符串包含JSON,其中最外层的东西是一个对象(而不是数组或只是一个值),尽管它可以很容易地调整而不是做出这个假设。例如,这个版本:
jsString = jsString.replaceFirst("^\\s*[A-Za-z0-9_$]+\\s*=\\s*", "");
删除了一系列字母,数字,_
或$
,可选地由空格包围,以及后面的=
,可能后跟空格,位于字符串的开头。现在,这不是有效JavaScript标识符字符的完整列表(该列表长),但您明白了。