Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP json双引号要求_Php_Json - Fatal编程技术网

PHP json双引号要求

PHP json双引号要求,php,json,Php,Json,PHP的JSON解码需要JSON格式,字段名用双引号括起来,如: {"foo-bar": 12345, "myName": "Johnnie"} 但我必须解析一些由Java应用程序生成的相对复杂的JSON,该应用程序使用字段名上没有双引号的名称进行格式化,如: {foo-bar: 13456, myName: "Johnnie"} …但更复杂。有什么简单的方法可以解决这个问题吗?或者我是不是有问题?这个要求遵循JSON规范。如果您查看下面的图表,您将看到一个对象由字符串:值对组成 字符串定义

PHP的JSON解码需要JSON格式,字段名用双引号括起来,如:

{"foo-bar": 12345, "myName": "Johnnie"}
但我必须解析一些由Java应用程序生成的相对复杂的JSON,该应用程序使用字段名上没有双引号的名称进行格式化,如:

{foo-bar: 13456, myName: "Johnnie"}

…但更复杂。有什么简单的方法可以解决这个问题吗?或者我是不是有问题?

这个要求遵循JSON规范。如果您查看下面的图表,您将看到一个对象由字符串:值对组成

字符串定义为包含Unicode字符的引号


您拥有的数据不是有效的JSON。

您在Java端使用哪个JSON解析器?正确的方法是使用双引号。如果您使用的是Jackson,则可以对其进行配置。您描述的需求是JSON的需求,而不是PHP的需求。Java应用程序生成的数据根本不是JSON。它甚至不是有效的JavaScript语法,因为标识符中不能包含连字符。我不确定Java端使用的是哪个解析器,我只是得到了格式不正确的数据。至于连字符,这只是来自PHP网站,我认为任何字段名的字符串中都没有连字符。PHP能以类似的方式解析Javascript吗?看看这个如果你不能在sourceYup上修复它,它可能有助于解决问题。是的,我知道这一点。我正在寻找解决方案。修复数据或编写自己的解析器,内置PHP没有提供任何真正有用的东西。可能已经存在限制性较小的解析器了我不知道。