这里我展示了项目的示例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。
答案 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
来自或填充,但如果上述方法不起作用,您可能需要在某个地方的流程中提前删除内容。