如何获得许多重复的JSON密钥的第一个键?

这个问题在这里已经有了答案:

  • JSON语法是否允许在对象中使用重复键? 11个答案

  • 你在这里给出的不是JSON,你将无法在PHP中创建具有重复键的数组。 虽然重复键在JSON中的对象属性上存在是有效的,但由于大多数解析器(包括json_decode )不会让您访问所有这些键,因此不鼓励它。

    然而,流解析器通常会让你得到这些解析器中的每一个。

    使用我写的一个例子, pcrov/JsonReader

    use pcrovJsonReaderJsonReader;
    
    $json = <<<'JSON'
    {
        "foo": "bar",
        "foo": "baz",
        "foo": "quux"
    }
    JSON;
    
    $reader = new JsonReader();
    $reader->json($json);
    $reader->read("foo"); // Read to the first property named "foo"
    var_dump($reader->value()); // Dump its value
    $reader->close(); // Close the reader, ignoring the rest.
    

    输出:

    string(3) "bar"
    

    或者,如果你想得到他们每个人:

    $reader = new JsonReader();
    $reader->json($json);
    while ($reader->read("foo")) {
        var_dump($reader->value());
    }
    $reader->close();
    

    输出:

    string(3) "bar"
    string(3) "baz"
    string(4) "quux"
    
    链接地址: http://www.djcxy.com/p/37825.html

    上一篇: How to get the first key of many duplicated json key?

    下一篇: Do JSON keys need to be unique?