我得到了这种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){ }
有谁可以告诉我哪里出错?
我没有看到这种输出,而且我无法找到它的原因?答案 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);