【问题标题】:PHP Json Parser [duplicate]PHP Json解析器[重复]
【发布时间】:2014-02-18 11:47:20
【问题描述】:

我是 PHP 编程新手, 我需要解析 json 字符串。 这是我作为 JSON 数组所拥有的字符串

 [{"datetime":"17/02/2014 13:18:30","type":"testtype","locationid":"1","GPSType":"GOOGLE","GPSLatitude":"1.1","GPSLongtitude":"1.2","userid":"admin","brand":"1234567","numbers":["num1","num2","num3]}]

在上面的字符串中,我只需要解析数字数组。

【问题讨论】:

  • 使用 json_decode() - 但要确保 JSON 字符串有效,否则它会返回 NULL。您在问题中的 JSON 字符串 not 有效(您可以使用在线验证器进行验证,例如 jsonlint.com
  • 如果我只是 search 那么适当的 PHP documentation 是第一个命中。
  • 对不起,我在 jsonlint.com 上检查了我的 json,它说有效 [ { "datetime": "17/02/2014 13:18:30", "type": "testtype", " locationid”:“1”,“GPSType”:“GOOGLE”,“GPSLatitude”:“1.1”,“GPSLongtitude”:“1.2”,“userid”:“admin”,“brand”:“1234567”,“numbers” : [ "num1", "num2", "num3" ] } ]
  • @user3323251 — 该评论中有一个" 不在问题中。

标签: php json


【解决方案1】:

我希望您的 PHP 代码中有 JSON 字符串。 您的 JSON 字符串中有错误。 由于您将 JSON 字符串维护为数组,因此您可以采用这种方法。 你可以很容易地理解这一点。

<?php
    $json = '[
                {
                    "datetime": "17/02/2014 13:18:30",
                    "type": "testtype",
                    "locationid": "1",
                    "GPSType": "GOOGLE",
                    "GPSLatitude": "1.1",
                    "GPSLongtitude": "1.2",
                    "userid": "admin",
                    "brand": "1234567",
                    "numbers": ["num1", "num2", "num3"]
                }
            ]';

    $obj = json_decode($json);
    $len = count($obj[0]->{'numbers'});
    for($i = 0; $i < $len; $i++) {
        echo $obj[0]->{'numbers'}[$i].'<br>';
    }
    ?>

输出将是:

num1
数字2
数字3

【讨论】:

    【解决方案2】:

    正如其他人在 cmets 中提到的,请使用 json_decode

    http://www.php.net/manual/en/function.json-decode.php

    [编辑]

    为了只获取"numbers" 数组,只需试试这个:

    $json = json_decode($input, true);
    $numbers = $json[0]["numbers"];
    

    json_decode 函数会将您的 JSON 字符串转换为关联数组,您可以从中获取所需的索引。

    【讨论】:

    • avoid link only answers。答案“仅是指向外部网站的链接”may be deleted
    • 请阅读答案的前半部分并扪心自问:这是“仅链接答案”吗?
    • 答案提供了 OP 要求的所有信息:一种在 PHP 中解析 JSON 字符串的方法。加上文档的链接。我看不到问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多