0

我有一个这样的 JSON 文件:

测试.json

{
    "barcode": {
        "message": "<?xml version=\"1.0\" encoding = \"utf-8?\"><PrintLetterBarcodeData name=\"ABCD \" gender=\"FEMALE\" yob=\"1964\"/>",
        "format": "PKBarcodeFormatQR",
        "messageEncoding": "iso-8859-1"
    }
}

和这样的 PHP 文件:

测试.php

<?php

$JSON = file_get_contents('test.json');
$json_object = json_decode($JSON);
print_r($json_object);

?>

我正在尝试读取“条形码”下键“消息”的值。我得到一个空字符串。这是我打印对象时得到的结果。

stdClass 对象 ( [barcode] => stdClass 对象 ( [message] => [format] => PKBarcodeFormatQR [messageEncoding] => iso-8859-1 ) )

JSON 很好,消息有 XML 内容。我需要阅读 PHP 中的 XML 内容。请让我知道我该怎么做?

4

2 回答 2

2

引用对象中的消息可以正常工作:

echo $json->barcode->message;

不过,阅读您的问题,我认为您并没有明确说明您的问题是什么。如果您在 PHP 中读取 XML 对象时遇到问题,那是因为您的 XML 无效。声明中有一个错字 - 请参阅下面的前后:

<?xml version=\"1.0\" encoding = \"utf-8?\">
<?xml version=\"1.0\" encoding = \"utf-8?\"?>
                                           ^
                                           Missing character

为了完整性...然后您可以简单地使用simplexml_load_string将消息对象解析为 PHP 变量并引用属性,如下所示:

$json = json_decode($json);
$xml = simplexml_load_string($json->barcode->message);
echo $xml['name'].' '. $xml['gender'].' '. $xml['yob'];

工作示例

于 2013-03-31T18:44:52.457 回答
1

这是您在 json_decode 中使用第二个可选参数的地方:http: //php.net/manual/en/function.json-decode.php

<?php

$JSON = file_get_contents('test.json');
$json_object = json_decode($JSON, true);
print_r($json_object);
echo $json_object['barcode']['message'];

?>
于 2013-03-31T17:11:14.363 回答