javascript - 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'}}
解决方案
您可以将其转换为 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);
这适用于您的数据。
推荐阅读
- c - x86-64 / Windows 下正确的上下文切换
- elasticsearch - 在 ElasticSearch 中以秒为单位转换 date_histogram 间隔
- javascript - 从firebase检索数据到android
- java - 方法覆盖中的参数类型
- azure-resource-manager - ARM 模板仍然是首选的部署机制?
- cocoapods - 如何修复 pod:找不到命令?我尝试了很多但还没有找到答案?
- java - 如何提取字符串的重复部分?
- node.js - 使用 firebase admin sdk 进行 REST api 身份验证
- php - 密码散列不适用于 MySQL
- docker - 带有外部负载均衡器的 Docker Swarm - 如何进行集体健康检查