javascript - 我正在从 javascript 传递表单数据中的 JSON。并在 php 中访问该 JSON。它将 ""替换为“

标签 javascript php json

我使用

将数组转换为 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()

所以我的问题是,

  1. 为什么“”被“替换”。
  2. 如何迭代 JSON,以便访问其中的键和值。

最佳答案

  1. 我不知道您的 log() 方法到底做了什么,所以我无法真正告诉您原因。
  2. 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/

相关文章:

javascript - 如果存在两个模式框,如何获取事件选项卡的 ID

javascript - 动态添加选项(tokenize.js)

php代码不输出utf 8字符?

json - 向 Sagemaker 上的 tensorflow 服务模型提供输入时出错。 {'error' : "Missing ' inputs' or 'instances' key"}

使用 onclick 事件删除图形的 javascript 或 jquery 函数

php - Cakephp 3.0 - 在组件内加载模型

php - 快速发送 json 到 php 服务器

javascript - 解析 jQuery 文档中的 JSON

java - 在 spring 配置中设置 Object Mapper SerializationFeature

javascript - 使用 Ajax Post 在 MVC 中获取选中的值复选框