在 JavaScript 中将 JSON 字符串转换为对象
Convert a JSON String to Object using JavaScript
使用该JSON.parse()
方法将 JSON 字符串转换为对象,例如
JSON.parse(jsonStr)
. 该方法解析 JSON 字符串并返回其 JavaScript 值或等效对象。
如果提供的参数不是有效的 JSON,该JSON.parse
方法将引发
SyntaxError
异常。
const jsonStr = '{"color": "blue", "number": 30}'; const parsed = JSON.parse(jsonStr); console.log(parsed); // 👉️ {color: 'blue', number: 30}
我们使用
JSON.parse
方法将 JSON 字符串转换为对象。
我们传递给该方法的唯一参数是应该解析的 JSON 字符串。
如果将无效的 JSON 字符串传递给该方法,SyntaxError
则会引发异常。
const invalidJsonStr = "{'color': 'blue'}"; // ⛔️ Error: Unexpected token ' in JSON at position 1 const parsed = JSON.parse(invalidJsonStr);
该JSON.parse
方法尝试解析 JSON 字符串但无法解析并抛出异常。
如果您需要处理这种情况,您可以使用块JSON.parse
内的方法try/catch
来确保您的程序不会崩溃。
const jsonStr = '{"color": "blue", "number": 30}'; let parsed; try { parsed = JSON.parse(jsonStr); console.log('✅ JSON converted to object successfully'); } catch (err) { console.log('⛔️ invalid JSON provided'); }
如果jsonStr
变量存储无效的 JSON,该catch
块将捕获异常以便我们处理它。
如果 JSON 字符串有效,它会转换为对象并分配给
parsed
变量。
如果您的 JSON 字符串存储无效的 JSON,请复制该字符串并将其粘贴到 JSON 验证器中以查看错误的来源。
You can correct the errors either on the server or on the client, by using the
String.replace
or
String.replaceAll
methods to replace/remove any invalid characters from the JSON string.
For example, the following code replaces all single quotes with double quotes to
produce a valid JSON string.
const invalidJsonStr = "{'color': 'blue'}"; const validJsonStr = invalidJsonStr.replaceAll(`'`, `"`); // 👇️ {color: 'blue'} const parsed = JSON.parse(validJsonStr); console.log(parsed);
replaceAll()
method to replace all occurrences of single quotes with double quotes to make the JSON string valid.The first parameter the replaceAll
method takes is the substring we want to
match in the string.
And the second – the replacement for each match.
The JSON.parse
method was able to convert the JSON string to a JavaScript
object.