【问题标题】:javascripts array to convert json phpjavascripts数组转换json php
【发布时间】:2021-08-05 11:00:38
【问题描述】:

我分析了文本,如何将其转换为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'}}

【问题讨论】:

  • 这不是有效的 JSON,因为键名周围没有引号
  • 在线使用 JSON linter 告诉您问题所在。顺便说一句,使用双引号
  • 我需要转换成有效的格式
  • 因为我是从第三方网站得到这种格式的
  • 我怀疑您从页面中解析/抓取它,您应该考虑使用v8js 来 JSON.stringify js 对象文字,或者将一些正则表达式组合在一起以将其变异为 json 3v4l.org/9u6CC 或只需使用正则表达式 3v4l.org/QsZRE 解析出值

标签: javascript php arrays json parsing


【解决方案1】:

您可以将其转换为 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);

这对你的数据很有效。

【讨论】:

  • 使用我的网站作为转换的中介?
  • @АлександрЛабудов 我以为您试图将 json 从 javascript 发送到您的 php。您可以在通过这种方式发送到 PHP 之前在您的 javascript 中转换 JSON 对象。
  • 我从第三方网站获取 javascript
  • @АлександрЛабудов 我更新了答案,以便您可以转换从第三方网站获得的JS对象。
猜你喜欢
  • 2016-08-01
  • 2015-07-02
  • 2016-07-07
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2018-09-16
  • 1970-01-01
相关资源
最近更新 更多