首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中解析json?

如何在php中解析json?
EN

Stack Overflow用户
提问于 2013-07-23 20:16:33
回答 4查看 1.8K关注 0票数 0

我正在尝试解析这个json '{"options":"[{\"order\":\"1\"},{\"skill\":\"\\n wajghjk \"},{\"order\":\"2\"},{\"skill\":\"\\n aswedrty \"},{\"order\":\"3\"},{\"skill\":\"\\n skill1 \"},{\"order\":\"4\"},{\"skill\":\"\\n wasedjk \"},{\"order\":\"5\"},{\"skill\":\"\\n Feldsher \"},{\"order\":\"6\"},{\"skill\":\"\\n wasedjk \"},{\"order\":\"7\"},{\"skill\":\"\\n Autotransfusionist \"},{\"order\":\"8\"},{\"skill\":\"\\n Feldsher \"},{\"order\":\"9\"},{\"skill\":\"\\n Autotransfusionist \"}]"}'。使用代码

代码语言:javascript
复制
<?php
$json = '{"options":"[{\"order\":\"1\"},{\"skill\":\"\\n                        wajghjk                    \"},{\"order\":\"2\"},{\"skill\":\"\\n                        aswedrty                    \"},{\"order\":\"3\"},{\"skill\":\"\\n                        skill1                    \"},{\"order\":\"4\"},{\"skill\":\"\\n                        wasedjk                    \"},{\"order\":\"5\"},{\"skill\":\"\\n                        Feldsher                    \"},{\"order\":\"6\"},{\"skill\":\"\\n                        wasedjk                    \"},{\"order\":\"7\"},{\"skill\":\"\\n                        Autotransfusionist                    \"},{\"order\":\"8\"},{\"skill\":\"\\n                        Feldsher                    \"},{\"order\":\"9\"},{\"skill\":\"\\n                        Autotransfusionist                    \"}]"}';

$decode = json_decode($json, true);
$a=array();
echo '<br/>';
foreach($decode['options'] as $a)
{
    echo $a['order'];echo '<br/>';
     echo $a['skill'];echo '<br/>';
}
?>

但是它显示错误并且不能解析。有没有更好的方法从这个json中获取顺序和技能的值?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-23 20:19:08

您正在转义双引号,当字符串由单引号分隔时,双引号将作为文字\字符出现。

或者在json字符串上运行stripslashes,或者从一开始就避免转义。

票数 1
EN

Stack Overflow用户

发布于 2013-07-23 20:18:57

这不是JSON。您转义的双引号太多。

票数 3
EN

Stack Overflow用户

发布于 2013-07-23 20:32:17

json字符串有两个问题。

  1. 您可以在单引号字符串内转义双引号。但是单引号的字符串只有一个转义序列,那就是\‘。Check this article.
  2. You在这里有一个问题:'{"options":"[{...}]"}'。您使用引号将javascript数组括起来,这会将其转换为字符串。

正确的json应该如下所示:

代码语言:javascript
复制
{"options":[{"order":"1"},{"skill":"\\n wajghjk "},{"order":"2"},{"skill":"\\n aswedrty "},{"order":"3"},{"skill":"\\n skill1 "},{"order":"4"},{"skill":"\\n wasedjk "},{"order":"5"},{"skill":"\\n Feldsher "},{"order":"6"},{"skill":"\\n wasedjk "},{"order":"7"},{"skill":"\\n Autotransfusionist "},{"order":"8"},{"skill":"\\n Feldsher "},{"order":"9"},{"skill":"\\n Autotransfusionist "}]}

Eval.in demo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17809977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档