将php json解析为javascript

时间:2017-10-20 07:49:19

标签: javascript php jquery json yii

所以,我必须将php json解析为javascript。

代码如下所示:

$thumbnails = [];
foreach ($images as $key => $image) 
{
  $thumbnails[$image->time] = [
    'src' => MovieEntity::getImageWithPublicPath(
      $movie->id, $image->filename, 130, 0, false
    ),
    'width' => '165px',
    'height' => '95px'
  ];
}

return json_encode($thumbnails, JSON_UNESCAPED_SLASHES);

结果是:

{"5":{"src":"google.ro","width":"165px","height":"95px"},"7":

我想采用srcwidthheight并将其插入如下图片:

<a href="">
  <img src="src of image" width="" height="">
</a>

我需要做什么? PHP中的这个变量叫做$thumbnails,它返回我上面显示的JSON。

<?php echo $thumbnails ?>

LE:我的解决方案是:

<?= '<script>var json='.$thumbnails.'</script>' ?>
console.log(json);

这会在控制台中返回json。

3 个答案:

答案 0 :(得分:1)

在你的javascript中,你必须通过执行get请求来请求你的php函数(假设你使用jQuery)。之后,在成功回调中,您拥有数据。所以尝试类似的东西:

$.ajax({
   url : 'file.php', // your php file
   type : 'GET', // type of the HTTP request
   success : function(data){
      var obj = jQuery.parseJSON(data);
      console.log(obj);
   }
});

您可以前往here了解更多信息

答案 1 :(得分:0)

如果你正在使用jQuery:$.parseJSON()

如果您使用普通的javascript:JSON.parse()

@Directive({ selector: '[pdHasRole]' })
export class UserHasRoleDirective {

    constructor(private templateRef: TemplateRef<any>,
        private viewContainer: ViewContainerRef,
        private userService: UserService) {
    }

    @Input() set pdHasRole(role: string) {

        this.viewContainer.clear();
        if (this.userService.userContext && this.userService.userContext.roles && this.userService.userContext.roles.length > 0) {
            if (role) {
                if (this.userService.userContext.roles.indexOf(role) > -1) {
                    this.viewContainer.createEmbeddedView(this.templateRef);
                }
            }
        }
    }
}

答案 2 :(得分:0)

您可以使用纯JavaScript执行此操作。

将JSON回显到脚本标记

var json = JSON.parse(document.getElementById('json').innerHTML);

var img = document.querySelector('img');

img.src = json.src;
img.width = json.width;
img.height = json.height;

然后使用JavaScript

进行定位
/^\d*(?:\.\d{1,2})*$/