gpt4 book ai didi

php - 对 JSON、PHP、AS3 不知所措 : Cannot trace correct value

转载 作者:行者123 更新时间:2023-11-29 18:17:50 28 4
gpt4 key购买 nike

我之前使用过 JSON 对象,它们工作得很好,但是我之前创建的 JSON 对象是来自获取 MySQL 条目的结果。现在,我尝试通过 PHP 中的数组创建自己的 JSON 对象,它在数据库中正确显示,但我无法像以前一样访问任何值。

$chatArray = array(
array(
'chatusername' => 'Troy',
'chatuserid' => '123',
'chatmessage' => 'Hello World'
),

array(
'chatusername' => 'Nick',
'chatuserid' => '124',
'chatmessage' => 'Testing'
));

$inputArray = json_encode($chatArray);

这就是我输入到数据库中的内容,就像我说的,效果很好。然后我在一个单独的 .php 中调用它并得到这个

{"chat":"[{\"chatuserid\": \"123\", \"chatmessage\": \"Hello World\", \"chatusername\": \"Troy\"}, {\"chatuserid\": \"124\", \"chatmessage\": \"Testing\", \"chatusername\": \"Nick\"}]"}

它会在前面抛出“聊天”,这是我数据库中的列名称,我不确定为什么。

当我追踪它时,我似乎只能通过

来追踪它
var messageArray:Object = JSON.parse(event.target.data);
trace(messageArray.chat);

每当我尝试引用 messageArray.chat.chatusername 时,它​​都会返回错误。

很抱歉,我知道这可能是一个简单的解决方案,但我已经搜索并研究了几个小时。

非常感谢任何帮助!谢谢!

最佳答案

来自the PHP code that generates your JSON output :

$stmt = $conn->prepare("SELECT chat FROM markerinfo WHERE markerid='$chatid'");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($result);

请记住,数据库中的 chat 列包含 JSON 字符串。

此代码不会解码数据库中的 JSON 字符串,因此 $result 也将是一个包含 JSON 字符串的数组:

$result = [
'chat' => '[{"chatusername":"Troy","chatuserid":"123","chatmessage":"Hello World"},{"chatusername":"Nick","chatuserid":"124","chatmessage":"Testing"}]'
];

通过 json_encode() 传递该数组,您可以对 JSON 字符串进行双重编码

出于您的目的,您可能可以逃脱:

echo $result['chat'];

但是,如果您希望将 chat 列名称包含在输出中,则必须首先对存储的 JSON 进行解码:

$result['chat'] = json_decode($result['chat']);
echo json_encode($result);

关于php - 对 JSON、PHP、AS3 不知所措 : Cannot trace correct value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46866962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com