Java 如何删除\“;从一个对象数组中

Java 如何删除\“;从一个对象数组中,java,json,string,replace,escaping,Java,Json,String,Replace,Escaping,我试图使用JSON从服务器获取一个对象数组 服务器向我发送以下字符串 "document" : "{\"bc\": {\n \"b\": {\n \"t\": 1,\n \"r\": 1,\n \"c\": \"none\",\n \"ipad\": \"Y\",\n \"n\": \"Table of Contents\",\n \"o\": 1,\n \"l\": \"en_US\",\n

我试图使用JSON从服务器获取一个对象数组

服务器向我发送以下字符串

"document" : "{\"bc\": {\n    \"b\": {\n        \"t\": 1,\n        \"r\": 1,\n        \"c\": \"none\",\n        \"ipad\": \"Y\",\n        \"n\": \"Table of Contents\",\n        \"o\": 1,\n        \"l\": \"en_US\",\n        \"i\": 1000013253\n    },\n    \"i\": \"CM19014269\"\n}}"
此响应包含一个\“而不是每个”。我不需要任何\”。我只需要一个简单的JSON响应。非常感谢您的帮助

我的密码:-

for (ManageBasketTO manageBasketTO: retList) {

                Long basketId = manageBasketTO.getBasketID();
                BasketTO basketTo = null;
                basketTo = CommonUtil.getBasket(usrCtxtObj, basketId, language, EBookConstants.FOR_VIEWER_INTERFACE,
                        usrCtxtObj.getScenarioID(), EBookConstants.YES, request, deviceType);

                String doc = Utilities.getStringFromDocument(basketTo.getdocument());

                    doc = doc.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
                    doc = doc.replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>", "");
                    doc = doc.trim();

                    JSONObject object = XML.toJSONObject(doc);
                    doc = object.toString(4);
                    BasketsInfoTO basketsInfoTO = new BasketsInfoTO(doc);

                    basketsToc.add(basketsInfoTO);



                }



            basketInfoRestTO.setBasketsInfoTOList(basketsToc);

            ObjectMapper mapper = new ObjectMapper();

            responseXML = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(basketInfoRestTO);
            }
for(ManageBasketTO ManageBasketTO:retList){
Long basketId=manageBasketTO.getBasketID();
BasketTO BasketTO=null;
basketTo=CommonUtil.getBasket(usrCtxtObj,basketId,language,EBookConstants.FOR_VIEWER_接口,
usrCtxtObj.getScenarioID(),EBookConstants.YES,请求,设备类型);
String doc=Utilities.getStringFromDocument(basketTo.getdocument());
单据=单据替换(“,”);
单据=单据替换(“,”);
doc=doc.trim();
JSONObject object=XML.toJSONObject(doc);
doc=object.toString(4);
BasketsInfoTO BasketsInfoTO=新BasketsInfoTO(doc);
basketsToc.add(basketsInfoTO);
}
篮筐信息列表(basketsToc);
ObjectMapper mapper=新的ObjectMapper();
responseXML=mapper.writerWithDefaultPrettyPrinter().writeValueAsString(basketInfoRestTO);
}
此外,我还尝试在第-
basketsToc.add(basketsInfoTO);
行之后打印basketsInfoTO.getDocument的值,并获得正确的响应

然而,当我试图在第-
basketInfoRestTO.setBasketsInfoTOList(basketsToc)行之后打印-basketInfoRestTO.getBasketsInfoTOList的值时;
我遇到了这个\“字符问题。

我可以使用下面的行从响应中删除\”

responseXML.replace("\\\"", "\"");
responseXML.replace("\\n", "");
还可以使用以下行从响应中删除\n-

responseXML.replace("\\\"", "\"");
responseXML.replace("\\n", "");

你是想在客户端还是服务器端解决这个问题?你已经得到了一个JSON对象-将其解析为JSON对象,然后获取
文档
字段。不要乱搞字符串替换-很担心你会手动删除XML声明开始…不,这些行没有任何用处,是吗因为您忽略了
replace
的返回值。即使您使用了结果,这也是错误的解决方案,IMO。您得到了JSON,所以将其解析为JSON。