Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用json模型的Zf2视图_Json_Zend Framework2_Jsonmodel - Fatal编程技术网

使用json模型的Zf2视图

使用json模型的Zf2视图,json,zend-framework2,jsonmodel,Json,Zend Framework2,Jsonmodel,在zend framework 2中,我在module.config.php中有以下配置: 'strategies' => array( 'ViewJsonStrategy', ) 我的控制器是: use Zend\View\Model\JsonModel; $view = new JsonModel(array( 'username' => ucfirst( $username ), 'datarr' => arra

在zend framework 2中,我在module.config.php中有以下配置:

'strategies' => array(
    'ViewJsonStrategy',
)
我的控制器是:

use Zend\View\Model\JsonModel;
$view = new JsonModel(array(
            'username' =>  ucfirst( $username ),
            'datarr' => array(

                'a' => 'A',
                'b' => 'B',
                'c' => 'C',
                'd' => 'D',

            ),
        ));
在我看来:

{ "username" : "Reynold", "datarr" : {"a":"A", "b":"B", "c":"C", "d":"D" } }

当我使用$view=new ViewModel;,我做对了,在使用JsonModel时,我得到了上面的一个,有人能帮我找出我做错了什么吗?

这没什么错。JsonModel用于ajax请求,而ViewModel用于普通http请求

您可以将来自JsonModel的响应用作javascript对象。 以下是jquery的一个示例:

$.ajax({
    url: yourUrl,
    success: function(d) {
        console.log(d.username);
        console.log(d.datarr.a);
    }
});
在控制器中,您可以检查它是否是如下所示的ajax请求:

if($this->getRequest()->isXmlHttpRequest()) {
   // return json-model
}