我有一个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"}"
最佳答案
jsString = jsString.replaceFirst("^[^{]+", "");
Live Example
这将删除第一个
{
之前的所有字符作为字符串的开头。它假设字符串包含JSON,其中最外层的东西是一个对象(与数组或值相对),尽管可以很容易地对其进行调整以使其不作此假设。例如,此版本:jsString = jsString.replaceFirst("^\\s*[A-Za-z0-9_$]+\\s*=\\s*", "");
Live Example
这将删除一系列字母,数字,
_
或$
,这些字符串可选地由空格包围,并在字符串的开头删除随后的=
,可能后跟空格。现在,这不是有效的JavaScript标识符字符的完整列表(该列表很长),但是您知道了。