首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让这些代码打印正确的JSON模式?

如何让这些代码打印正确的JSON模式?
EN

Stack Overflow用户
提问于 2022-08-24 11:51:25
回答 2查看 40关注 0票数 0

我正在尝试创建一个php脚本,它将像这样输出json:

代码语言:javascript
复制
{"lots":[{"Id":32932,"Type":"G","x":1,"y":2,"z":3},{"Id":32933,"Type":"R","x":4,"y":5,"z":6}]

我的php脚本如下所示,这是输出:

代码语言:javascript
复制
$lots = array("lots");

$lots[] = array("Id" => 32932, "Type" => "G", "x" => 1, "y" => 2, "z" => 3);
$lots[] = array("Id" => 32933, "Type" => "R", "x" => 4, "y" => 5, "z" => 6);

$json = json_encode($lots);

echo $json;

产出:

代码语言:javascript
复制
["lots",{"Id":32932,"Type":"G","x":1,"y":2,"z":3},{"Id":32933,"Type":"R","x":4,"y":5,"z":6}]

正如你所看到的,它的结构是不同的。

如果我使用php生成的json,这是一个错误:

ArgumentException: JSON必须表示对象类型。

我有另一个C#统一项目,它期望JSON是第一种格式。如何使PHP代码以正确的模式输出?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-24 11:55:05

要获得所需的输出,PHP应该是:

代码语言:javascript
复制
$lots = array();

$lots["lots"][] = array("Id" => 32932, "Type" => "G", "x" => 1, "y" => 2, "z" => 3);
$lots["lots"][] = array("Id" => 32933, "Type" => "R", "x" => 4, "y" => 5, "z" => 6);

$json = json_encode($lots);

echo $json;

现场演示:https://3v4l.org/9UlGX

您的版本是创建一个数组元素,其值为“lot”(并隐式地创建一个数值键0),而不是创建一个名为“lot”的键并将项分配给它。

票数 3
EN

Stack Overflow用户

发布于 2022-08-24 11:56:55

PHP脚本中的Json生成一个数组,其中包含一个字符串和两个对象,因此自然不能序列化。

您必须对其进行更改,以便PHP脚本生成一个json,从具有元素调用的元素“很多”开始,其中包含一个包含对象的数组,那么第二个脚本也会工作。

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

https://stackoverflow.com/questions/73472645

复制
相关文章

相似问题

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