Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用gson.toJson(objectsrc)时出错:声明多个名为ntMgr的JSON字段_Java_Json_Gson - Fatal编程技术网

Java 使用gson.toJson(objectsrc)时出错:声明多个名为ntMgr的JSON字段

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

在发布之前,我一直在寻找问题的解决方案,但没有得到多少。 问题是我正在用以下两个产品详细信息填充我的JsonObject:

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]"