Java 使用gson.toJson(objectsrc)时出错:声明多个名为ntMgr的JSON字段
在发布之前,我一直在寻找问题的解决方案,但没有得到多少。 问题是我正在用以下两个产品详细信息填充我的JsonObject:Java 使用gson.toJson(objectsrc)时出错:声明多个名为ntMgr的JSON字段,java,json,gson,Java,Json,Gson,在发布之前,我一直在寻找问题的解决方案,但没有得到多少。 问题是我正在用以下两个产品详细信息填充我的JsonObject: JSONArray result=new JSONArray(); JSONObject prodListFinal = new JSONObject(); List<JLCRCQProduct> productList = getFromFunction(); for(JLCRCQProduct product : productList){ JSO
JSONArray result=new JSONArray();
JSONObject prodListFinal = new JSONObject();
List<JLCRCQProduct> productList = getFromFunction();
for(JLCRCQProduct product : productList){
JSONObject prodList = new JSONObject();
prodList.put("localReference", product.getLocalReference());
prodList.put("productName", product.getProductName());
result.put(prodList);
}
prodListFinal.put("product", result);
错误:
ActionController ActionController::doPost()::exception:: java.lang.IllegalArgumentException: class org.apache.jackrabbit.core.nodetype.NodeTypeImpl declares multiple JSON fields named ntMgr
注意:当我只传递一个产品细节时(我为循环输入中断,所以循环运行一次),我得到的是我的响应。但对于两个产品列表来说,它是失败的。
有人能帮上忙吗?我想这里您混合了两种JSON实现(JSON.org和gson) 您必须将实现更改为仅使用单个实现 例如(仅使用gson):
JsonArray结果=新的JsonArray();
JsonObject prodListFinal=新的JsonObject();
List productList=getFromFunction();
对于(JLCRCQProduct product:productList){
JsonObject prodList=新的JsonObject();
addProperty(“localReference”,product.getLocalReference());
prodList.addProperty(“productName”,product.getProductName());
结果.添加(prodList);
}
添加(“产品”,结果);
感谢Sachin的回复。
我解决了JSON中的问题。我有点像
"ImageResource": "ImageResource, type=nt:unstructured, path=/etc/commerce/products/productnumber/images/image, resource=[JcrNodeResource, type=nt:unstructured, superType=null, path=/etc/commerce/products/productnumber/images/image]"
正确的JSON应该有
“ImageResource”:“/etc/commerce/products/productnumber/images/image”
(仅图像路径)如果您已经有一个jsonObject实例,请尝试prodListFinal.toString();
JsonArray result=new JsonArray();
JsonObject prodListFinal = new JsonObject();
List<JLCRCQProduct> productList = getFromFunction();
for(JLCRCQProduct product : productList){
JsonObject prodList = new JsonObject();
prodList.addProperty("localReference", product.getLocalReference());
prodList.addProperty("productName", product.getProductName());
result.add(prodList);
}
prodListFinal.add("product", result);
"ImageResource": "ImageResource, type=nt:unstructured, path=/etc/commerce/products/productnumber/images/image, resource=[JcrNodeResource, type=nt:unstructured, superType=null, path=/etc/commerce/products/productnumber/images/image]"