Json对象得到了不必要的元素?

时间:2017-09-19 14:15:23

标签: android json sqlite

我得到了这种json输出:

{"OrderSummary":"[
        {\"ProductQuantity\":\"1\",
        \"ProductName\":\"Wine\",
        \"Sellerid\":\"2\",
        \"ProductCost\":\"500\"}
        ,

       {\"ProductQuantity\":\"1\",
       \"ProductName\":\"Whisky\",
        \"Sellerid\":\"1\",
       \"ProductCost\":\"500\"
       }
   ]"
}

我想要这种输出

{"Order Summary":
    [

      {
         "ProductQuantity":"1",
         "ProductName":"Wine",
         "Sellerid":"2",
         "ProductPrice":"500",
         "ProductCost":"500"     
      },
      {
        "ProductQuantity":"1",
        "ProductName":"Whisky",
        "Sellerid":"2",
        "ProductPrice":"200",
        "ProductCost":"200"
      }
    ]}

这是我获取json数组和json对象时的代码

 Cursor cursor = dbHelper.getCarProducts();
        cursor.moveToFirst();
        do {
            JSONObject product = new JSONObject();
            try {
                product.put("Sellerid",cursor.getString(cursor.getColumnIndex("_Sellerid")));
                product.put("ProductCost",cursor.getString(cursor.getColumnIndex("_Cost")));
                product.put("ProductQuantity",cursor.getString(cursor.getColumnIndex("_Quantity")));
                product.put("ProductPrice",cursor.getString(cursor.getColumnIndex("_Price")));
                product.put("ProductName",cursor.getString(cursor.getColumnIndex("_Name")));
                userCart.put(product);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }while(cursor.moveToNext());
             Cart = new JSONObject();
          try
          {
              Cart.put("OrderSummary",userCart.toString());
          }
          catch (Exception ex){ }

有谁可以告诉我哪里出错?

我没有看到这种输出,而且我无法找到它的原因?

1 个答案:

答案 0 :(得分:0)

经过一周的搜索,敲打头,测试并尝试不同的代码,我终于找到了问题的答案和问题的原因

原因: 为了避免额外的“”(引号),json系统会提出这些正斜杠。 解决方案: 为避免因这些正斜杠而出错,我们可以使用php提供的stripslashes()函数(从版本5.4开始)

下面的PHP代码可以真正帮助转换生成的json结果: -

$jsonstring={"Order Summary":
[ 
   {
     \ "ProductName\":\"Wine\",
      \"ProductPrice\":\"500\",
      \"ProductQuantity\":\"2\",
      \"ProductCost\":\"1000\",
      \"SellerId\":\"2\"

   },
   {
      \"ProductName\":\"Whiskey\",
      \"ProductPrice\":\"1000\",
      \"ProductQuantity\":\"1\",
      \"ProductCost\":\"1000\",
      \"SellerId\":\"1\"

   }
]}
$jsondata=json_decode(stripslashes($jsonstring),true);
print_r($jsondata);