【问题标题】:Recognizing JSON Content识别 JSON 内容
【发布时间】:2012-06-03 16:29:41
【问题描述】:

我有以下数据

{
    total: "156",
    list: [

            {
            "nodeRef": "workspace://SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67", 
            "id": "e364714d-14bc-4e13-bfff-c1f86a8cbe67",
            "name": "Morning Class_Dadi Janki_29-05-12_H_London.mp4",
            "mimetype": "video/mp4",
            "title" : "Morning Class" ,
            "author": "Dadi Janki",
            "class_date": "May 29, 2012 12:00:00 AM",
            "created": "May 29, 2012 12:32:44 PM",
            "size": "97,156,420",
            "lang": "h",
            "totalViews": "11",
            "totalDownloads": "0",
            "downloadUrl": "/d/a/workspace/SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67/Morning%20Class_Dadi%20Janki_29-05-12_H_London.mp4"
            }
    ]
}

当我尝试var_dump它时

它给了我空值。如何知道数据是否经过JSON 编码?

编辑: 这是代码 我通过get_contents获取以上内容到url

 $url = ""; // URL
 $contents = file_get_contents($url);
 $data = json_decode($contents);
 var_dump($data);

【问题讨论】:

标签: php json


【解决方案1】:
<?php

$str = '{
    total: "156",
    list: [

            {
            "nodeRef": "workspace://SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67", 
            "id": "e364714d-14bc-4e13-bfff-c1f86a8cbe67",
            "name": "Morning Class_Dadi Janki_29-05-12_H_London.mp4",
            "mimetype": "video/mp4",
            "title" : "Morning Class" ,
            "author": "Dadi Janki",
            "class_date": "May 29, 2012 12:00:00 AM",
            "created": "May 29, 2012 12:32:44 PM",
            "size": "97,156,420",
            "lang": "h",
            "totalViews": "11",
            "totalDownloads": "0",
            "downloadUrl": "/d/a/workspace/SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67/Morning%20Class_Dadi%20Janki_29-05-12_H_London.mp4"
            }
    ]
}
';

$str = preg_replace('#([^\s\"]+): #is', '"\\1": ', $str);

echo $str;

?>

【讨论】:

  • 可以通过 $str->list->title 正常访问 Object 的属性吗?
  • @NarendraRajput 只需将 json_decode 应用于 $str,例如 $str = json_decode($str);你去...还有 $str = json_decode($str, true);你可以像这样访问 $str['list']['title'] ...
【解决方案2】:

首先,当您将获得任何 json 值或发送任何 json 格式的值时,首先检查 Json 是否有效..

Json 验证器和格式化器:-

http://jsonformatter.curiousconcept.com/

Json 验证器:-

http://www.jsonlint.org/

然后在您的代码中尝试查找错误:- json_last_error

并尝试对 Url 值使用 Json 编码和解码.. 这总是有帮助的..

有效的Json:-

{
   "total":"156",
   "list":[
      {
         "nodeRef":"workspace://SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67",
         "id":"e364714d-14bc-4e13-bfff-c1f86a8cbe67",
         "name":"Morning Class_Dadi Janki_29-05-12_H_London.mp4",
         "mimetype":"video/mp4",
         "title":"Morning Class",
         "author":"Dadi Janki",
         "class_date":"May 29, 2012 12:00:00 AM",
         "created":"May 29, 2012 12:32:44 PM",
         "size":"97,156,420",
         "lang":"h",
         "totalViews":"11",
         "totalDownloads":"0",
         "downloadUrl":"/d/a/workspace/SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67/Morning%20Class_Dadi%20Janki_29-05-12_H_London.mp4"
      }
   ]
}


Json:--

{"total":"156","list":[{"nodeRef":"workspace://SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67","id":"e364714d-14bc-4e13-bfff-c1f86a8cbe67","name":"Morning Class_Dadi Janki_29-05-12_H_London.mp4","mimetype":"video/mp4","title":"Morning Class","author":"Dadi Janki","class_date":"May 29, 2012 12:00:00 AM","created":"May 29, 2012 12:32:44 PM","size":"97,156,420","lang":"h","totalViews":"11","totalDownloads":"0","downloadUrl":"/d/a/workspace/SpacesStore/e364714d-14bc-4e13-bfff-c1f86a8cbe67/Morning%20Class_Dadi%20Janki_29-05-12_H_London.mp4"}]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2011-04-11
    相关资源
    最近更新 更多