我使用
将数组转换为 JSON 后发送该数组var json_arr = JSON.stringify(info);
JSON 是,
{"1":"111112221111","2":"1111122211","3":"11111222"}
我将此 JSON 作为文本框的值发送(使用 post 方法在表单字段中)。
我将其打印在 php 文件中
$this->log->write($data['infoArray']);
打印为
{"1":"111112221111","2":"1111122211","3":"11111222"}
我试过了
json_decode($data['infoArray'],true);
但它什么也不打印(空白)
所以当我尝试迭代它时,
foreach ( $data['infoArray'] as $key => $value) {
$this->log->write("key :".$key);
$this->log->write("value :".$value);
}
它会引发警告
PHP Warning: Invalid argument supplied for foreach()
所以我的问题是,
- 为什么“”被“替换”。
- 如何迭代 JSON,以便访问其中的键和值。
最佳答案
- 我不知道您的
log()
方法到底做了什么,所以我无法真正告诉您原因。 - 在
json_decode()
之前使用html_entity_decode()
- 计算$data['infoArray']
的值
试试这个:
$decoded = json_decode( html_entity_decode( $data['infoArray'] ) );
foreach ( $decoded as $key => $value) {
$this->log->write("key :".$key);
$this->log->write("value :".$value);
}
关于javascript - 我正在从 javascript 传递表单数据中的 JSON。并在 php 中访问该 JSON。它将 ""替换为“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29657678/