如何在具有“复杂”结构的php中使用json? - php

我想使用json + php作为我的数据。我阅读了更多文档以执行此操作,其基本功能是json_decode()和json_encode()。我的问题是,阅读更多的文件和阅读不同的结构实例给我造成了很多疑问。

我想从基础到容器创建像这样的结构:

有一个Base,具有2个属性:id和value
有一个可以有多个基础的操作
有一个命令可以有多个操作(如果可能的话,还有一个属性被叫名称)

我脑海中的结构就是这样...

[ //The start of Commands

  //Can make a property name here like "name":"puls1"
  [ //Operation1
 { //Base1
   "id":"22398",
   "value":"255"
 },
 { //Base2
   "id":"22657",
   "value":"80",
 },
 { //Base3
   "id":"7928",
   "valore":"15"
 }
  ],

  [ //Operation2
 { //Base1
   "id":"22398",
   "value":"0"
 },
 { //Base2
   "id":"22657",
   "value":"0",
 },
 { //Base3
   "id":"7928",
   "valore":"0"
 }
  ],

] //The close of Commands

但是我把[和{的顺序不正确,我认为...
我如何制作这样的json结构?并在设置命令后插入新操作或删除操作?

谢谢。

//通过我的回答确定此代码

class Base 
{
  var $i;
  var $value;

  function __construct($i,$v) 
  {
   $this->id = $i;
   $this->value = $v;
   }
}

$a = new Base('1','11');
$b = new Base('2','10');
$c = new Base ('3','20');
$d = new Base ('4','30');

class Operation
{
  var $name;
  var $values = Array();

  function __construct($a) 
  {
   $this->name = $a;
  }

  public function addArray($a)
  {
   array_push($this->values,$a);
  } 
}

$oper1 = new Operation("op1");
$oper1->addArray($a);
$oper1->addArray($b);

$oper2= new Operation("op2");
$oper2->addArray($c);
$oper2->addArray($d);

$commands = Array($oper1,$oper2);

echo json_encode($tot);

现在的问题是如何进行还原操作?如此使用json_decode并封装在其适当的结构中?

参考方案

如果您使用的是PHP,那么我将从本地PHP类构造对象(json_encode也可用于php对象):

class Base {
    var $id;
    var $value;
}

然后只需将这些对象放入各种数组中即可,也可以使用addToOperation($baseObj)addToCommands($operationObj)之类的方法对其进行抽象。

您正在处理本机数据结构(Arrays),因此可以使用本机方法删除(array_pop)和添加(array_push)数据。

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

PHP:获取调用引用的数组名称 - php

假定以下函数并调用:function doSomething( &$someArray ) { // Do something to $someArray } $names=array("John", "Paul", "George", "Ringo"); doSomet…

array_udiff返回不同的结果 - php

我有这段代码来获取两个对象数组之间的区别:$diff = array_udiff($a, $b, function($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } ); $ a是[ { "id": "7", "attribute":…

PHP-MySQL结果转换为JSON - php

我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…