将字符串从HTML输入元素转换为对象



我有一个以对象类型作为输入的textarea元素像

{
name: "root",
backlog: [
{name: "log#1"},
]
}

访问数据返回字符串

是否有一种简单的方法将String转换为特定的javascript object而不使用正则表达式过滤器?只是去掉外面的引号?

使用json5或relax JSON库

下面是使用json5

的示例

let string = `  {
name: "root",
backlog: [
{name: "log#1"},
]
}`;

let object = JSON5.parse(string);
console.log(object)
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>

将字符串转换为JSON,使用:JSON.parse([the input]).

和,将其转换回字符串:JSON.stringify([the input]).

如果我没理解错的话:

const string = '{ name: "root", backlog: [{name: "log#1"}]}'
const jsonStr = string.replace(/(w+:)|(w+ :)/g, function(matchedStr) {
return '"' + matchedStr.substring(0, matchedStr.length - 1) + '":';
});
const result = JSON.parse(jsonStr)
console.log(result)

如果你想使用一种简单的本地方法,你可以简单地将其字符串化,然后使用内部JSON对象进行解析,例如:

let yourObject = JSON.parse(JSON.stringify(textareaVariable));

这是有效的,因为stringify基本上会将字符串格式化为JSON字符串,并使用JSON文档的适当语法,然后您可以将其解析为标准对象。

使用JSON.stringify()将JavaScript对象转换为字符串。

从JavaScript对象创建一个JSON字符串。

const obj = {name: "John", age: 30, city: "New York"};
const myJSON = JSON.stringify(obj); 
console.log(myJSON);
//Output: {"name":"John","age":30,"city":"New York"}

JSON.parse()解析数据,数据就变成了JavaScript对象。

从JSON字符串创建对象

const txt = {"name":"John", "age":30, "city":"New York"}
const obj = JSON.parse(txt);
console.log(obj.name + ", " + obj.age);
//Output:John, 30

您可以简单地使用JSON。解析带有一些参数的调用以维护缩进。

const text = '{"firstName":"John", "lastName":"Doe", "address":{"city": "Tanger", "country": "Morocco"}}';
const obj = JSON.stringify(JSON.parse(text), null, 2)
console.log(obj);

最新更新