javascript - 我如何 JSON.parse 带有 HTML 标签的字符串?

标签 javascript html json

我有这样一个字符串:

{"Restriction":"<wbr><a href=\"https://www.google.com.tw/#q=%E4%B8%AD%E5%9C%8B\" 
target=\"_blank\"><span style=\"color: rgb(0, 0, 205);\">more info</span></a></wbr>"}

但我无法用 JSON.parse 解析它。我的代码如下所示:

var s = '{"Restriction":"<wbr><a href=\"https://www.google.com.tw/#q=%E4%B8%AD%E5%9C%8B\" target=\"_blank\"><span style=\"color: rgb(0, 0, 205);\">more info</span></a></wbr>"}';
var obj = JSON.parse(s);

我得到了错误:

Uncaught SyntaxError: Unexpected token.

我猜是「\"」弄错了,但我无法更改字符串,因为我是通过调用远程 API 获得的。这是我的代码:

// We need this to build our post string
var querystring = require('querystring');
var http = require('http');
var fs = require('fs');

function PostCode(codestring) {

  // An object of options to indicate where to post to
  var post_options = {
      host: 'api.domain',
      port: '80',
      path: '/webservice/service.asmx/method?key=123456',
      method: 'GET',
      headers: {
          'Content-Type': 'text/plain'
      }
  };

  // Set up the request
  var post_req = http.request(post_options, function(res) {
      res.setEncoding('utf8');
      res.on('data', function (chunk) {
        var x = {};
          console.log('Response down');
          x = JSON.parse(chunk);
      });
  });

  post_req.end();

}
PostCode();

最佳答案

这不是有效的 JSON。反斜杠也应该转义。

var s = '{"Restriction":"<wbr><a href=\\"https://www.google.com.tw/#q=%E4%B8%AD%E5%9C%8B\\" target=\\"_blank\\"><span style=\\"color: rgb(0, 0, 205);\\">more info</span></a></wbr>"}';
JSON.parse(s); // correct

我认为,您应该向此远程API 发布错误报告。

关于javascript - 我如何 JSON.parse 带有 HTML 标签的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33595331/

相关文章:

javascript - 对于仅计算公式的网页,使用 DIV 或表单更好地使用用户输入字段?

json - 解码到相同的结构但不同的 json 名称

c# - xml转json后无法访问数据

javascript - 在第二个数组中排序单词

javascript - 将 Google map DIV 转换为图像

javascript - 图片无法被 JavaScript 识别

javascript - jQuery keyup 事件只触发一次

php - 在 JSON 编码中使用深度的目的是什么?

javascript - 用 PHP 脚本替换 CSS

javascript - 表打开时应用事件状态