相关疑难解决方法(0)

以正确的方式创建JSON对象

我试图从PHP数组中创建一个JSON对象.该数组如下所示:

$post_data = array('item_type_id' => $item_type,
    'string_key' => $string_key,
    'string_value' => $string_value,
    'string_extra' => $string_extra,
    'is_public' => $public,
    'is_public_for_contacts' => $public_contacts);
Run Code Online (Sandbox Code Playgroud)

编码JSON的代码如下所示:

$post_data = json_encode($post_data);
Run Code Online (Sandbox Code Playgroud)

JSON文件最终应该看起来像这样:

{
    "item": {
        "is_public_for_contacts": false,
        "string_extra": "100000583627394",
        "string_value": "value",
        "string_key": "key",
        "is_public": true,
        "item_type_id": 4,
        "numeric_extra": 0
    }
} 
Run Code Online (Sandbox Code Playgroud)

如何将创建的JSON代码封装在"item"中:{JSON CODE HERE}.

php json

100
推荐指数
4
解决办法
18万
查看次数

你如何用PHP中的反斜杠创建一个字符串?

我需要一个反斜杠作为字符串的一部分.我该怎么做?

php

31
推荐指数
3
解决办法
8万
查看次数

PHP的json_encode不会转义所有JSON控制字符

PHP的json_encode函数是否有任何原因无法转义字符串中的所有JSON控制字符?

例如,让我们取一个跨越两行的字符串,并在其中包含控制字符(\ r \n"/ \"):

<?php
$s = <<<END
First row.
Second row w/ "double quotes" and backslash: \.
END;

$s = json_encode($s);
echo $s;
// Will output: "First row.\r\nSecond row w\/ \"double quotes\" and backslash: \\."
?>
Run Code Online (Sandbox Code Playgroud)

请注意,回车符和换行符未转义.为什么?

我正在使用jQuery作为我的JS库,它的$ .getJSON()函数将完全正常,100%信任传入数据.否则我像其他人一样使用JSON.org的库json2.js.但是,如果您尝试解析该编码的字符串,则会引发错误:

<script type="text/javascript">

JSON.parse(<?php echo $s ?>);  // Will throw SyntaxError 

</script>
Run Code Online (Sandbox Code Playgroud)

你无法获得数据!如果删除或转义该字符串中的\ r \n"和\",则JSON.parse()不会抛出错误.

是否有任何现有的,良好的PHP函数用于转义控制字符.使用搜索和替换数组的简单str_replace将不起作用.

php json

26
推荐指数
2
解决办法
6万
查看次数

标签 统计

php ×3

json ×2