由于开始和结束时的双引号,将字符串转换为对象会出错
Convert String to Object gives error due to double quotes at start and end
我有一个来自第三方的对象 api。它的形式如下:
"{ "type": "object", "properties": { "hostUrl": {
"type": "string",
"description": "hostUrl", }, }, }"
由于开头和结尾的双引号,我遇到了错误,json parse 也没有被删除,所以请告诉我如何删除这个将我的对象包裹在其中的双引号
一个 JSON 字符串化的对象应该总是包含用单引号括起来的对象 '
。你的'包含在双引号 "
.
中
由于您收到的 JSON 响应格式不可接受,因此您无法直接解析并在响应的第一个和最后一个中添加单引号 '
以使其有效。
也就是说,
如果您得到的回复是
"{ "type": "object", "properties": { "hostUrl": { "type": "string", "description": "hostUrl" } } }"
添加单引号使其成为
'"{ "type": "object", "properties": { "hostUrl": { "type": "string", "description": "hostUrl" } } }"'
因为现在你的对象是一个有效的字符串,使用 substring 方法并删除错误放置的双引号以获得有效的 JSON 字符串化值。
代码如下:
let obj = '"{ "type": "object", "properties": {"hostUrl": { "type": "string", "description": "hostUrl" } }}"';
obj = obj.substring(1, obj.length-1);
console.log(JSON.parse(obj));
试试这个
const jsonStr =
'"{ "type": "object", "properties": { "hostUrl": { "type": "string", "description": "hostUrl", }, }, }"';
var json = jsonStr
.substring(1, jsonStr.length - 1)
.replaceAll("},", "}")
.replaceAll(" ", "")
.replaceAll(",}", "}");
json
{
"type": "object",
"properties": {
"hostUrl": {
"type": "string",
"description": "hostUrl"
}
}
}
我有一个来自第三方的对象 api。它的形式如下:
"{ "type": "object", "properties": { "hostUrl": {
"type": "string",
"description": "hostUrl", }, }, }"
由于开头和结尾的双引号,我遇到了错误,json parse 也没有被删除,所以请告诉我如何删除这个将我的对象包裹在其中的双引号
一个 JSON 字符串化的对象应该总是包含用单引号括起来的对象 '
。你的'包含在双引号 "
.
由于您收到的 JSON 响应格式不可接受,因此您无法直接解析并在响应的第一个和最后一个中添加单引号 '
以使其有效。
也就是说,
如果您得到的回复是
"{ "type": "object", "properties": { "hostUrl": { "type": "string", "description": "hostUrl" } } }"
添加单引号使其成为
'"{ "type": "object", "properties": { "hostUrl": { "type": "string", "description": "hostUrl" } } }"'
因为现在你的对象是一个有效的字符串,使用 substring 方法并删除错误放置的双引号以获得有效的 JSON 字符串化值。
代码如下:
let obj = '"{ "type": "object", "properties": {"hostUrl": { "type": "string", "description": "hostUrl" } }}"';
obj = obj.substring(1, obj.length-1);
console.log(JSON.parse(obj));
试试这个
const jsonStr =
'"{ "type": "object", "properties": { "hostUrl": { "type": "string", "description": "hostUrl", }, }, }"';
var json = jsonStr
.substring(1, jsonStr.length - 1)
.replaceAll("},", "}")
.replaceAll(" ", "")
.replaceAll(",}", "}");
json
{
"type": "object",
"properties": {
"hostUrl": {
"type": "string",
"description": "hostUrl"
}
}
}