APEX JSON生成器writeString转义引号

时间:2012-03-23 03:58:26

标签: json salesforce apex-code

使用JSON Generator的方法writeString时,是否有办法不转义字符串中的引号?我得到了以下结果:

"{\"Name\":\"asdsads\",\"Query\":\"adasdasd\"},{\"Name\":\"12312312\",\"Query\":\"3123123\"},{\"Name\":\"d23d2\",\"Query\":\"3d23d2\"}"

而不是:

{"Name":"asdsads","Query":"adasdasd"},{"Name":"12312312","Query":"3123123"},{"Name":"d23d2","Query":"3d23d2"}

我已经尝试了replace('\\', '');以及replace('\\"', '"');但是没有效果。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

解决了它。不得不做以下事情:

String genString = gen.getAsString();
genString = genString.replace('\\"', '"');
genString = genString.replace('"{', '{');
genString = genString.replace('}"', '}');

由于某种原因,无法动态更换。

答案 1 :(得分:0)

最好不要在RestResource类的上述代码段中添加该代码段,而我建议您在解析Json之前添加此代码段。 因为我有从RestResource类生成的Json,所以对我来说效果很好。

“ {\ n”状态“:”成功“,\ n”计数“:6,\ n”帐户“:[” AccontFromMyVF“,”英国联合石油天然气公司“,”新加坡联合石油天然气公司“ ”,“联合石油天然气公司”,“ AccontFromMyVF”,“ AccontFromMyVF12”] \ n}”

添加以下内容

   Accountresult = Accountresult.replace('\\n', '');
    Accountresult = Accountresult.replace('\\"', '"');
    Accountresult = Accountresult.replace('"{', '{');
    Accountresult = Accountresult.replace('}"', '}');

我的回应变成了

{“状态”:“成功”,“计数”:6,“帐户”:[“ AccontFromMyVF”,“英国联合石油天然气公司”,“新加坡联合石油天然气公司”,“联合石油天然气公司Corp。”,“ AccontFromMyVF”,“ AccontFromMyVF12”]}

通过这个Json,我们可以轻松执行解析动作