我在数据映射器中使用get()
方法从数据库中选择列。我将此对象传递给json_encode();
当我这样做时,我收到此错误
json_encode() type is unsupported, encoded as null
更新三
["{\"id\":1,\"name\":\"JOHN\",\"city\":\"null\"}"
,"{\"id\":2,\"name\":\"MICHEAL\,\"city\":\"null\"}"]
这是我的回复,我没有选择城市,但仍然出现城市。如何以正确的格式获取json
SyntaxError:JSON.parse:JSON数据后的意外非空白字符
[Break On This Error]
var jsonData = JSON.parse(data);
答案 0 :(得分:0)
将Datamapper对象编码为json对象需要扩展中的函数。您可以在此处找到导入扩展程序的方法:http://datamapper.wanwizard.eu/pages/extensions.html 这是一种方法:
class Test extends DataMapper {
// Include the json extension
var $extensions = array('json');
.......
$test= new Test();
$test->where('id', $this->input->post('id'));
$test->select('id,name');
$test->get();
$test->set_json_content_type();
echo $test->all_to_json();
“城市”栏目存在的事实是正常的。来自DataMapper用户指南:
使用相应表格中的所有对象填充对象, 但只填充了标题和说明字段
要解码您的JSON,您需要使用此方法(如果您还没有,请不要忘记导入扩展名)
$n = new Test();
$n->from_json([put your JSON string here]);
答案 1 :(得分:0)
我没有使用Datamapper进行CI,但我很确定你应该做以下事情:
$test= new Test();
$test->select('id,tag_name');
$test->where('id', $this->input->post('id'));
$test->get();
json_encode($test);
注意:在使用$ test变量对JSON进行编码之前,调用 - > get()应该是最后一次调用。