在数据库中存储JSON数据:对象无法转换为字符串错误
Storing JSON data in database: object could not be converted to string error
在一个坚果壳中,我的数据是用Javascript编写的:
JSONdata = {
name: form.name.value,
address1: form.custa.value,
address2: form.custa2.value,
postcode: form.custpc.value,
order: fullorder,
cost: document.getElementById('total')
}
fullorder是要订购的一系列产品。:[{"idnum":"2","cost":232,"quantity":"1"},{"idnum":"1","cost":2342,"quantity":"3"}]
我有一个XJAX,它将这些数据字符串化,如下所示:
{"name":"j","address1":"jh","address2":"jhj","postcode":"h","order":[{"idnum":"2","cost":232,"quantity":"1"},{"idnum":"1","cost":2342,"quantity":"3"}],"cost":{}}
在PHP中,它是作为一个数组给出的:
Array
(
[0] => stdClass Object
(
[idnum] => 2
[cost] => 232
[quantity] => 1
)
[1] => stdClass Object
(
[idnum] => 1
[cost] => 2342
[quantity] => 3
)
)
我的问题是如何将其存储在数据库中?我尝试过serialize和json_encode,但两者都给了我一个:"stdClass类的对象无法转换为字符串"。
如有任何帮助,我们将不胜感激!
->不要担心查询数据库和JSON之争。我将立即获取所有数据,所以这不是问题:)
编辑:谢谢回复,伙计们,我给你们一些关于它如何工作的信息:
因此,当我将JSON发送到我的PHP时,我有一个脚本可以提取所有数据,如下所示:
$intel = extractdata();
function extractdata() {
if (isset($_REQUEST['data'])){
$jsonDump = json_decode($_REQUEST['data']);
foreach($jsonDump as $key => $value) {
$obj[$key] = $value;
}
return $obj;
}
所以这给了我
$intel['name'] = // form.name.value variable
$intel['address1'] = // form.name.value variable
$intel['order']
给了我上面看到的PHP数组。我想将所有这些存储在数据库中的列中:客户名称、地址1、地址2、邮政编码、订单、成本
我以为只要$neworder = json_encode($intel['order'])
就可以将其存储在数据库中,但它仍然会抛出转换错误。
感谢
所以基本上你有一个数组,它包含这样一个对象:
$o = array((Object)array(array("idnum"=>2, "cost"=>232, "quantity"=>1), array("idnum"=>1, "cost"=>2342, "quantity"=>3)));
用json_encode()
对此进行响应将返回一个json字符串:
echo json_encode($o);
结果将是
[
{
"0": {
"idnum": 2,
"cost": 232,
"quantity": 1
},
"1": {
"idnum": 1,
"cost": 2342,
"quantity": 3
}
}
]
这对你有用吗?此外,您使用的是任何框架还是纯php?
如果你有这个:
$jsonDump = json_decode($_REQUEST['data']);
我相信你不需要这个:
foreach($jsonDump as $key => $value) {
$obj[$key] = $value;
}
此外,您不启动$obj(在函数或某事开始时应为$obj=null)。
您需要的是json_encode((array) $obj);
在字符串化之前将对象转换为一个简单的数组,这应该可以解决您的问题。您还可以实现_toSting($obj)
函数,如:
$str = '{';
foreach($obj as $key => $value) {
$str .= '"'.$key.'":"'.$value.'"';
$str .= ',';
}
$str = trim(',',$str).'}';
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- 用于查询错误转换的角度资源返回列表
- 灯箱中的幻灯片转换错误
- 从ASP转换后出现无效ViewState错误.NET 1.1到ASP.净额3.5
- CSS-3转换错误,菜单出现卡住
- 图像转换错误裁剪
- 注意:将数组从 php 转换为 javascript 时出现数组到字符串的转换错误
- Javascript CRM 转换错误
- javascript中的数字到字符串转换错误
- 转换错误:ArrayBuffer到Int16Array
- Mongoose强制转换错误-嵌入子文档
- 如何删除php中的数组到字符串转换错误
- firefox CSS转换错误
- 使用d3js时发生转换错误
- 这个类型转换错误与_id有什么关系?转换为objecd失败,值“123”;路径" id"'
- D3转换错误
- 显示id的转换错误,但id从未使用节点js
- Javascript将十六进制值转换错误
- d3.js绘制线条转换错误
- CSV到json转换错误