如何将PHP多维数组转换为Json,使其作为Json POST请求工作



在Postman上执行POST请求时,我有以下JSON:

'{
"bar1": "sample",
"bar2": [
{
"bar1": "sample",
"bar2": "sample",
"bar3": "111111111",
"bar4": "sample",
"bar5": {
"bar6": "varr",
"bar7": [
-70.11111111111111,
-33.11111111111111
]
}
}
],
"bar8": 11111
}'

然而,在我的后端,我有一个数组,我需要将其整形为JSON格式。我构建阵列的方式如下:

$myArray =array(
"bar1" => "sample",
"bar2" => (object) array(
"bar1" => "sample",
"bar2" => "sample",
"bar3" => "111111111",
"bar4"=> "sample",
"bar5" => (object)[
"bar6" => "varr",
"bar7" => array(
-70.111111111111111,
-33.111111111111111
)]

),
"bar8" => 11111
) ;

当涉及到通过cURL发送请求时;内部服务器错误";作为回应。如果我发送JSON原始字符串,我会得到正确的响应。将我的数组转换为我需要的JSON的最佳方式是什么?

json_encode((提供了以下json,它在发出请求时解析为服务器错误。

{
"bar1": "sample",
"bar2": {
"bar1": "sample",
"bar2": "sample",
"bar3": "sample",
"bar4": "sample",
"bar5": {
"bar6": "varr",
"bar7": [
-70.111111111111,
-33.111111111111
]
}
},
"bar8": 11111
} 

要使json_encode生成一个json对象数组,密钥bar2需要包含一个数组数组,即

$myArray = array(
"bar2" => array(
array(
"hello" => "world"
),
),
);

将原始数组更新为以下格式将生成一个json对象,其中bar2返回一个对象数组。

$myArray = array(
"bar1" => "sample",
"bar2" => array(
array(
"bar1" => "sample",
"bar2" => "sample",
"bar3" => "111111111",
"bar4" => "sample",
"bar5" => [
"bar6" => "varr",
"bar7" => array(
-70.111111111111111,
-33.111111111111111
)
]
)
),
"bar8" => 11111
);

以下数组将生成以下json。

{
"bar1": "sample",
"bar2": [
{
"bar1": "sample",
"bar2": "sample",
"bar3": "111111111",
"bar4": "sample",
"bar5": {
"bar6": "varr",
"bar7": [
-70.11111111111111,
-33.111111111111114
]
}
}
],
"bar8": 11111
}

演示源。

您尝试过json_encode()函数吗?

最新更新