无法看到包含XML的解析的JSON文件内容为值
问题描述:
我有一个JSON文件是这样的:无法看到包含XML的解析的JSON文件内容为值
test.json
{
"barcode": {
"message": "<?xml version=\"1.0\" encoding = \"utf-8?\"><PrintLetterBarcodeData name=\"ABCD \" gender=\"FEMALE\" yob=\"1964\"/>",
"format": "PKBarcodeFormatQR",
"messageEncoding": "iso-8859-1"
}
}
和PHP文件是这样的:
test.php的
<?php
$JSON = file_get_contents('test.json');
$json_object = json_decode($JSON);
print_r($json_object);
?>
我正试图读取“条形码”下的“消息”键的值。我得到一个空字符串。这是我打印对象时得到的结果。
stdClass的对象([条形码] => stdClass的对象([消息] => [格式] => PKBarcodeFormatQR [messageEncoding] => ISO-8859-1))
JSON是好,消息具有XML内容。我需要阅读PHP中的XML内容。请让我知道我该怎么做?
答
引用的对象的消息工作正常:
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'];
答
这是你使用第二个可选参数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'];
?>
天色渐打印。由于它是xml内容,因此浏览器中没有显示任何内容。感谢您的答案。 –