当json_encode数组在php中具有对象值时,意外的json字符串

时间:2015-06-29 14:09:38

标签: php json

具有值var $error_code="100";的对象 我可以在函数中将此值设置为

$this->error_code=$simpleXml->error_code;  // eg:214

我可以使用json_encode创建其对象和打印值

 echo $obj->error_code; //print value 214
 $code=$obj->error_code;
 $set=array("error_code" => $code,"message" =>"topup failed");
 echo json_encode($set);

我收到了回复

214 {"error_code":{"0":"214"},"message":"topup failed"}

但我希望输出为

{"error_code":"214","message":"topup failed"}

获得

的实际问题是什么?
{"0":"214"} 
输出

即使$ code打印值为214?

2 个答案:

答案 0 :(得分:1)

更改此行,

$code=$obj->error_code;

$code=$obj->error_code->0;

同时删除

echo $obj->error_code;

获取

{"error_code":"214","message":"topup failed"}

答案 1 :(得分:0)

而不是:

echo $obj->error_code; //print value 214
$code=$obj->error_code;
$set=array("error_code" => $code,"message" =>"topup failed");
echo json_encode($set);

只需使用:

$code = $obj->error_code;
echo json_encode(array("error_code" => $code,"message" =>"topup failed"));

删除其他行,不必要

修改:在[0]

之后添加$obj->error_code