首页 > 解决方案 > 如何从输入字段解析 JSON

问题描述

我正在尝试从我的 node.js 服务器上的输入字段解析 json 数据。如果我只是将值 16 作为输入字段中的值,我可以简单地用request.body.id(读取它<input type="hidden" id="id" name="id" value="16"/>)。但是当我将 json 字符串化为输入字段的值并解析 json 的数据时,我总是得到一个错误SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>)。但是我可以在浏览器控制台中看到我的 json 数据 <input type="hidden" id="id" name="id" value="{" a":0.3,"b":0.5,"c":1.3}">为什么我不能用 读取输入字段的值request.body.id

标签: javascripthtmlnode.jsjson

解决方案


标签

<input type="hidden" id="id" name="id" value="{" a":0.3,"b":0.5,"c":1.3}">

包含属性

type="hidden"
id="id"
name="id"
value="{"

和一些垃圾

a":0.3,"b":0.5,"c":1.3}"

因为 JSON 中的第一个引号关闭了该属性。

你必须伪装引号

<input type="hidden" id="id" name="id" value="{&quot; a&quot;:0.3,&quot;b&quot;:0.5,&quot;c&quot;:1.3}">

在评论中澄清后,这里是一个工作示例:

const json = JSON.stringify({" a":0.3,"b":0.5,"c":1.3});

document.body.innerHTML = `<input value="${json.replaceAll('"', '&quot;')}">`;
const input = document.querySelector('input');

console.log(JSON.parse(input.value));


推荐阅读