猿问

如何将此字符串转换为数组?

我正在尝试将我在JS中创建的这个数组转换为在我的控制器中使用的数组,以便在foreach中使用并使用数组的数据。我正在使用框架代码刻画器。


在这里,我在我的JS文件中创建数组。


function get_array(){

  var datos = []; // Array

  $("#tbl_esctructura tbody > tr").each(function() {


    var item = $(this).find('td:eq(1)').text();

    var cantidad = $(this).find('td:eq(4)').text();


    datos.push({

       "item": item,

       "cantidad": cantidad

    });

  });


  datos =  JSON.stringify(datos); 

  $.ajax({

        data: {

            'datos': datos

        },

        url: "<?php echo base_url() ?>Controller/data_from_array",

        type: 'POST',

        dataType : "json",

        success: function(response) {


        }

    });

}

我发送到控制器的数据看起来像这样。[{"item":"1","cantidad":"2"},{"item":"2","cantidad":"4"}]


现在我的控制器 PHP


public function data_from_array(){

   $data   =  $this->input->post('datos', TRUE);

   $items = explode(',', $data);

   var_dump($items);

   foreach ($items as $row) {

       echo  $row->item.'<br>';

   }

}

这就是结果var_dump($items)


array(2) { [0]=> string(12) "[{"item":"1"" [1]=> string(16) ""cantidad":"1"}]" } 

        }


在这个回声中,我得到这个错误Message: Trying to get property 'item' of non-object


我不知道我做错了什么


慕无忌1623718
浏览 93回答 3
3回答

慕姐4208626

看起来像一个标准的 JSON。请务必将 true 添加到json_decode函数(第二个参数)以返回数组而不是对象。$result&nbsp;=&nbsp;json_decode($data,&nbsp;true);看看JSON,因为这是当今Web和移动应用程序的数据交换标准,并了解有关该功能的更多信息:https://www.php.net/manual/en/function.json-decode.php还要看看它的对应物,它将把你的数组编码成JSON格式:https://www.php.net/manual/en/function.json-encode.php

12345678_0001

有两种情况:如果要解析 JSON 对象,则$items&nbsp;=&nbsp;json_decode($data);&nbsp;//&nbsp;instead&nbsp;of&nbsp;$items&nbsp;=&nbsp;explode(',',&nbsp;$data);如果要将数据视为字符串,则echo&nbsp;&nbsp;$row[0].'<br>';&nbsp;//&nbsp;instead&nbsp;of&nbsp;echo&nbsp;&nbsp;$row->item.'<br>';

白猪掌柜的

可以将此代码用作分解返回数组,而不是对象。public function data_from_array(){&nbsp; $data&nbsp; &nbsp;=&nbsp; $this->input->post('datos', TRUE);&nbsp; $items = explode(',', $data);&nbsp; var_dump($items);&nbsp; &nbsp;foreach ($items as $row) {&nbsp; &nbsp; &nbsp; echo&nbsp; $row["item"].'<br>';&nbsp; &nbsp;}
随时随地看视频慕课网APP
我要回答