PHP生成JSON相关的问题

WBOY
Freigeben: 2016-06-06 20:29:07
Original
1175 Leute haben es durchsucht

关于PHP生成JSON数据的几个问题。

<code>foreach($re as $key=>$value){
    $dd['code'][0]->$key=$value;
    }
$ff = json_encode($dd);
print_r($ff);

// 输出
{"code":[{"0":{"key":"value"},"1":{"key":"value"}}]}</code>
Nach dem Login kopieren
Nach dem Login kopieren

请问要怎么在code前现加一点内容呢?比如:"url":"www.com",使生成的JSON就成这样。

<code>{"url":"www.com", "code":{"0":{"key":"value"},"1":{"key":"value"}}}}</code>
Nach dem Login kopieren
Nach dem Login kopieren

还就是输出的中文全变成了这样\u8f8a\u67e5\u538d,要怎么才能输出成中文呢?

Google了半天都没找到办法,找到的基本全这样的。

<code>$aa = urlencode($dd);
echo urldecode(json_encode($aa));</code>
Nach dem Login kopieren
Nach dem Login kopieren

可是这样不仅不能输出中文,连输出都没有了。。。
var_dump($aa)输出的是NULL,这可怎么办是好啊。。

=============追加=================
那个出现个问题。

<code>{
    "url":"www.com",
    "0":
    {
        "code":
        {
            "0":{"key":"value"},
            "1":{"key":"value"}
        }
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

生成的JSON会变成这样子,请问要怎么把这此数字去掉呢?

=================二追===================

<code>$aa = array("url"=>"www.com");
json_encode(array($aa,$dd['code']), JSON_UNESCAPED_UNICODE);</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样能可以实现想要的,可是有个问题。
从Mysql导出来的数据时怎么会有一个序号呢?

回复内容:

关于PHP生成JSON数据的几个问题。

<code>foreach($re as $key=>$value){
    $dd['code'][0]->$key=$value;
    }
$ff = json_encode($dd);
print_r($ff);

// 输出
{"code":[{"0":{"key":"value"},"1":{"key":"value"}}]}</code>
Nach dem Login kopieren
Nach dem Login kopieren

请问要怎么在code前现加一点内容呢?比如:"url":"www.com",使生成的JSON就成这样。

<code>{"url":"www.com", "code":{"0":{"key":"value"},"1":{"key":"value"}}}}</code>
Nach dem Login kopieren
Nach dem Login kopieren

还就是输出的中文全变成了这样\u8f8a\u67e5\u538d,要怎么才能输出成中文呢?

Google了半天都没找到办法,找到的基本全这样的。

<code>$aa = urlencode($dd);
echo urldecode(json_encode($aa));</code>
Nach dem Login kopieren
Nach dem Login kopieren

可是这样不仅不能输出中文,连输出都没有了。。。
var_dump($aa)输出的是NULL,这可怎么办是好啊。。

=============追加=================
那个出现个问题。

<code>{
    "url":"www.com",
    "0":
    {
        "code":
        {
            "0":{"key":"value"},
            "1":{"key":"value"}
        }
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

生成的JSON会变成这样子,请问要怎么把这此数字去掉呢?

=================二追===================

<code>$aa = array("url"=>"www.com");
json_encode(array($aa,$dd['code']), JSON_UNESCAPED_UNICODE);</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样能可以实现想要的,可是有个问题。
从Mysql导出来的数据时怎么会有一个序号呢?

你的问题有两个:

1,如何追加内容?

json 和 array 是对应的,就像你给数据追加内容一样:

<code class="php">$url = 'www.com';
$code = array(
    array('key', 'value');
    array('key', 'value');
    array('key', 'value');
);

echo json_encode(array('url'=>$url, 'code'=>$code));</code>
Nach dem Login kopieren

2,如何不乱码?

php5.4 之后 json 新增了一个选项 JSONUNESCAPEDUNICODE:

<code class="php">echo json_encode(array('url'=>$url, 'code'=>$code), JSON_UNESCAPED_UNICODE);</code>
Nach dem Login kopieren

让 json 更懂中文

要在code前加上内容,可以在要转换为json的数组前加上值就可以了吧。-_-

<code class="php">$dd['url'] = 'www.xx.com';</code>
Nach dem Login kopieren

PHP版本始于5.4后可用JSON_UNESCAPED_UNICODE参数常量来将字符不转换为unicode码,具体参考手册。

<code class="php">$ff = json_encode($dd, JSON_UNESCAPED_UNICODE); </code>
Nach dem Login kopieren

如果PHP版本小于5.4,可参考如下方法:

<code class="php">function json_encode_utf8($value) {
    $jsons = json_encode($value);
    return preg_replace(
        "#\\\u([0-9a-f]{4}+)#ie",
        "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))",
        $jsons
    );
}</code>
Nach dem Login kopieren

\u8f8a\u67e5\u538d 本身就是中文啊, 这个是交给前端处理的。

PHP生成JSON相关的问题

问题1:

<code>$dd['url'] = 'www.com';
$dd['code'] = array();</code>
Nach dem Login kopieren

问题2:
见1楼,那个是js中推荐的汉字使用方式,与文件编码无关。js中直接使用

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage