2014-10-17 107 views
-1

我已经拥有变量JSON编码,然后像“[”和“]”在json数组中有元素。问题是?如何删除元素。如何在json中删除元素数组“[”&“]”?

这是改变前的JSON的示例

[{ 
    "form": { 
     "user_id": "1", 
     "form_id": 26, 
     "form_name": "KireniuS", 
     "form_description": "afafasf", 
     "form_json": [{ 
      "id": 72043, 
      "name": "EditText", 
      "input_type": "text", 
      "hint": "", 
      "options": "" 
     }, { 
      "id": "409289", 
      "name": "Ini Spinner", 
      "input_type": "spinner", 
      "hint": "ini saya ro", 
      "options": "Saya, dan Dia" 
     }], 
     "created_at": "17-10-2014_16:49", 
     "created_by": "adminweb", 
     "last_updated_at": "17-10-2014_16:49" 
    } 
}] 

PHP:

$jadi_json = array(); 
     foreach($model as $row) 
     { 
      $json_converter = json_decode($row->json_form); 


      $saya = array(
       "form"=>array(
        "user_id"=>$row->id_user, 
        "form_id"=>$row->id_form, 
        "form_name"=>$row->form_name, 
        "form_description"=>$row->form_description, 
        "form_json"=>$json_converter->form_json, 
        "created_at"=>$row->created_at, 
        "created_by"=>$row->created_by, 
        "last_updated_at"=>$row->last_updated_at 
       )); 
      array_push($jadi_json, $saya); 
     } 
     header('Content-Type: application/json'); 
     echo json_encode($jadi_json); 

JSON格式所需

{ 
    "form": { 
     "user_id": "1", 
      "form_id": 26, 
      "form_name": "KireniuS", 
      "form_description": "afafasf", 
      "form_json": [{ 
      "id": 72043, 
       "name": "EditText", 
       "input_type": "text", 
       "hint": "", 
       "options": "" 
     }, { 
      "id": "409289", 
       "name": "Ini Spinner", 
       "input_type": "spinner", 
       "hint": "ini saya ro", 
       "options": "Saya, dan Dia" 
     }], 
      "created_at": "17-10-2014_16:49", 
      "created_by": "adminweb", 
      "last_updated_at": "17-10-2014_16:49" 
    } 
} 

元件阵列 “[” 和 “]” 被省略只是表面上。

+5

所以你想要一个单一的对象而不是一个对象数组吗?只需从数组中取出第一个索引元素,就是这样,要么我不理解你的问题,要么你不懂JSON。 .. – 2014-10-17 10:42:08

+3

'$ new_json = $ old_json [0]'?或者我错过了什么? – danneth 2014-10-17 10:47:39

回答

1

首先,您的JSON位于表单对象列表中。要解析JSON,请使用json_decode($json)CJSON::decode($json)。您将有数组是这样的:

array(
    0 => array('form' => array(...)), 
    // if there is any more `form` elements: 
    1 => array('form' => array(...)), 
); 

从Array获得第一个元素,使用$myArray[0]current($myArray)(如果你不知道什么是关键将是第一个)。

中底:

$myArray = CJSON::decode($row->json_form); 
$saya = current($myArray); 
$secondSaya = next($myArray); 
$lastSaya = end($myArray); 

如果能够控制好从您的JSON来了,试图去改变它,所以它作为单一的入口,而不是作为数组。 (例如CJSON::encode(array('form' => array('user_id' => 1, /*...*/)))