如何在JSON中使用特殊字符

时间:2018-01-02 09:24:20

标签: java json

这里我展示了项目的示例JSON对象

{
    "objectType": "main",
    "description": "",
    "Column": "[{"displayName": "Account Name", "DataType" : "string"}, {"displayName" : "Billing City", "DataType" : "string" }, { "displayName" : "Billing State/Province" , "DataType" : "string" }, {"displayName" : "Billing Street", "DataType" : "textarea"}]"
}

它有一些特殊字符,如" /" (计费州/省)的显示名称。现在不允许将它转换为JSONArray并由于其中的特殊字符而放入RootJsonObject。我使用了以下代码

RootJsonObject = new JSONObject();
RootJsonObject.put("content",new JSONArray(JsonObject.getString("Column")));

但我需要那个特殊的角色。是否还有其他方法可以使用#34; /"在我的JSONObject中,或者我可以使用任何其他JSON util。

1 个答案:

答案 0 :(得分:0)

我可以看到您更新了问题,以便为Content媒体资源添加有效的JSON。

将此字符串反序列化为JSON时,您需要转义任何特殊字符。

Apache StringEscapeUtils包含escapeJson方法,可以为您执行此操作:

RootJsonObject = new JSONObject();
String jsonArrayString = StringEscapeUtils.escapeJson(JsonObject.getString("Column"));
RootJsonObject.put("content", new JSONArray(jsonArrayString));

我并非100%清楚JsonObject来自或填充,但如果上述方法不起作用,您可能需要在某个地方的流程中提前删除内容。