首页 > 解决方案 > javascripts数组转换json php

问题描述

我分析了文本,如何将其转换为 json 来使用 (php) json_decode

json_decode 返回此文本的语法错误

$arr = json_decode($str, true);
{1: {name: '1page',img: 'loc1.png?1'},2: {name: '2page',img: 'KMFBBtkfQ0I.jpg'},3: {name: '3page',img: 'LUbBPtWbWO4.jpg'},4: {name: '4page',img: 'aRbGcm1kHT4.jpg'},5: {name: '5page',img: 'EUp2_8QQuPM.jpg'},6: {name: '6page',img: 'Uv07mXmwcRQ.jpg'},7: {name: '7page',img: 'TKFOhIpPIno.jpg'},8: {name: '8page',img: '7614/M4AEZ27Z7EA.jpg'},9: {name: '9page',img: 'dlRmw2YT5TA.jpg'},10: {name: '10page',img: 'BnxGt0Oq6KQ.jpg'}}

标签: javascriptphparraysjsonparsing

解决方案


您可以将其转换为 JSON 字符串(在您的 javascript 代码中),如下所示:

$jsonString = JSON.stringify(jsonObject);

并像这样在你的php中解码它:

// get the data

// decode here
json_decode($json_data, true)

更新

上述解决方案是将 JSON 字符串从客户端 JavaScript 发送到 PHP 服务器的方法。但是您似乎有一个 JS 对象,并且您想在 PHP 中将其转换为 JSON。这是解决方案:

$temp = "{1: {name: '1page',img: 'loc1''1.png?1'},2: {name: '2page',img: 'KMFBBtkfQ0I.jpg'},3: {name: '3page',img: 'LUbBPtWbWO4.jpg'},4: {name: '4page',img: 'aRbGcm1kHT4.jpg'},5: {name: '5page',img: 'EUp2_8QQuPM.jpg'},6: {name: '6page',img: 'Uv07mXmwcRQ.jpg'},7: {name: '7page',img: 'TKFOhIpPIno.jpg'},8: {name: '8page',img: '7614/M4AEZ27Z7EA.jpg'},9: {name: '9page',img: 'dlRmw2YT5TA.jpg'},10: {name: '10page',img: 'BnxGt0Oq6KQ.jpg'}}";

function jsToJsonStr($str)
{
    $search = array("{ ", " }",  ', ', " ,", " :",  ": ", ":",   ":'",  "':{",  "'}",   "{",    "',",   ",",);
    $replace = array("{", "}",   ',',  ",",  ":",   ":",  "\":", ":\"", "\":{", "\"}",  "{\"",  "\",",  ",\"");

    $str = str_replace($search, $replace, $str);
    $obj = json_decode($str, true);
    return $obj;
}

$json_str = jsToJsonStr($temp);
var_dump($json_str);

这适用于您的数据。


推荐阅读