首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转义为net.sf.json.JSONObject

转义为net.sf.json.JSONObject
EN

Stack Overflow用户
提问于 2013-01-10 04:14:35
回答 2查看 3.7K关注 0票数 0

当我必须在这里弹出一个异常'true‘= 'true’pq是另一个单引号中的单引号时,有人知道这个JSONObject.fromObject的某种转义字符吗?

代码语言:javascript
运行
复制
public static void main(String[] args) {

        String json = "{gA:[ {c:{f:'C#',o:'=',v1:' ('true' = 'true' ) ' }}]}";


        final Map<String, Object> map = new HashMap<String, Object>();



        try {

            JsonConfig cfg = new JsonConfig();
            cfg.setRootClass(LinkedHashMap.class);
            cfg.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY);
            cfg.setHandleJettisonSingleElementArray(false);
            JSONObject jsonObjeto = JSONObject.fromObject(json, cfg);
            System.out.println(jsonObjeto.toString());
        } catch (final JSONException e) {

            e.printStackTrace();
        }


    }

例外:

代码语言:javascript
运行
复制
net.sf.json.JSONException: Expected a ',' or '}' at character net.sf.json.JSONException: Expected a ',' or '}' at character 31 of {gA:[ {c:{f:'C#',o:'=',v1:' ('true' = 'true' ) ' }}]}  
    at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:499)  
    at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1099)  
    at net.sf.json.JSONObject.fromObject(JSONObject.java:159)  
    at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:348)  
    at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1008)  
    at net.sf.json.JSONObject.fromObject(JSONObject.java:159)  
    at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:348)  
    at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1131)  
    at net.sf.json.JSONArray.fromObject(JSONArray.java:125)  
    at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:351)  
    at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1008)  
    at net.sf.json.JSONObject._fromString(JSONObject.java:1201)  
    at net.sf.json.JSONObject.fromObject(JSONObject.java:165)  
    at br.com.michel.json.JsonTest.main(JsonTest.java:28)

我想要的json的输出:

{"ga":{ "C ":{"f",“C #","o":"=","v1":"('true‘=’true‘)”}

EN

回答 2

Stack Overflow用户

发布于 2013-01-10 09:54:52

您可以使用反斜杠对单引号进行转义(由于我们使用的是Java字符串文字,因此必须对反斜杠进行转义):

代码语言:javascript
运行
复制
String json = "{gA:[ {c:{f:'C#',o:'=',v1:' (\\'true\\' = \\'true\\' ) ' }}]}";

使用修改后的json变量运行代码会产生以下输出:

代码语言:javascript
运行
复制
{"gA":[{"c":{"f":"C#","o":"=","v1":" ('true' = 'true' ) "}}]}

此字符串与所需的输出不同,因为它的元素是v1而不是u,并且值没有被修剪。不过,我不确定这是否是复制/粘贴类型。如果这就是您想要的,那么修改已解析的JSONObject就足够简单了。

票数 1
EN

Stack Overflow用户

发布于 2013-01-10 19:47:54

伙计,当我把这个Json:

{gA:[{c:{f:'FIXO',o:'=',v1:'T'}},{gO:{c:{f:'ID_USUARIO',o:'=',vc:'200'}},{c:{f:'ID_PERFIL',o:'=',vc:'28'}},{c:{f:'C#',o:'=',v1:'(\'true\‘=\’true\‘)’}]

溢出此异常:

net.sf.json.JSONException:{gA:[{c:{f:'FIXO',o:'=',v1:'T'}},{gO:{c:{f:'ID_USUARIO',o:'=',vc:'1'}},{c:{f:'ID_PERFIL',o:'=',vc:'1'}},{c:{f:'C#',o:'=',v1:'(\'true\‘=\’true\‘)’}]}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14245656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档