javascript - 使用 Javascript 从 HTML 输入字段中提取 JSON 变量

标签 javascript php jquery json

我有以下输入 HTML 元素,我已将 json 编码的 php 变量作为值传递。在源代码中它呈现如下:

<input type="hidden" id="js-helper-artist-likes" name="js-helper-artist-likes" value="{"name":[{"id":215,"fbid":"19538277626","stage_name":"311","city":"","state":"","image_path":"http:\/\/graph.facebook.com\/19538277626\/picture?width=720&height=720",
"description":"311 was formed in 1990 in Omaha, Nebraska."},{"id":18,"fbid":"14591271531","stage_name":"Beck","city":"","state":"","image_path":"https:\/\/graph.facebook.com\/14591271531\/picture?width=720&height=720",
"description":""},{"id":47,"fbid":"137029526330648","stage_name":"Disclosure","city":"","state":"","image_path":"https:\/\/graph.facebook.com\/137029526330648\/picture?width=720&height=720","description":""},
{"id":11,"fbid":"152513780224","stage_name":"Arcade Fire","city":"","state":"","image_path":"https:\/\/graph.facebook.com\/152513780224\/picture?width=720&height=720","description":""}]}">

我想用javascript抓取该值,对其进行json_decode,然后将其用作JS中的数组。就像这样:

var artist_likes = $('#js-helper-artist-likes').val();
console.log(artist_likes);
var artist_likes_decoded = $.parseJSON(artist_likes);
console.log(artist_likes_decoded);

但是,当我打印 Artist_likes 时,它只会显示如下:

"{"

在控制台中。

我知道这是因为 JSON 包含破坏解析的引号,但是有没有办法用 JavaScript 提取文字值?

最佳答案

我认为该错误是由于未转义的引号造成的:

value="{"name":
--------^

这里的引用没有被转义。难道不应该是:

value="{\"name\":

这可能就是原因,它被过早地剪切并显示输出为 {。或者处理此问题的最佳方法是使用单引号:

value='{"name":

还值得注意的是,JSON 值应该使用双引号而不是单引号。因此,请确保在 HTML 中给出单引号,在 JSON 值中给出双引号,并转义在 JSON 值中找到的单引号。

可能的PHP 代码是:

value='<?php echo str_replace("'", "\\'", $jsonStuff); ?>'

关于javascript - 使用 Javascript 从 HTML 输入字段中提取 JSON 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220348/

相关文章:

javascript - 如何将工具提示应用于 JSP 中父选择标签已经存在的选项标签?

javascript - ng-google-chart 柱形图中每列的自定义颜色

php - 在我的情况下避免循环内的查询

php - 在 Windows 10 和 PHP7 上将 ZeroMQ PHP 扩展添加到 XAMPP

javascript - 按单词拆分,除非短语包含该单词

javascript - 处理带有延迟的无限序列

javascript - 条纹 Angular 形式在指令中不起作用

javascript - 加载图像后触发 JavaScript 的最快方法?

php - 创建和优化 mysql 查询,php

JQuery Full Calendar with Spring MVC ..无法调用 Controller 来获取JSON对象