在编程中,将字符串转换为JSON对象是常见操作,以下是三种主流语言的实现方式:
1. JavaScript
// 方式1:JSON.parse()(最常用)
const jsonStr = '{"name":"Alice","age":25}';
const jsonObj = JSON.parse(jsonStr);
console.log(jsonObj.name); // 输出: Alice
// 方式2:eval()(不推荐,存在安全风险)
const unsafeObj = eval('(' + jsonStr + ')');
// 方式3:第三方库(如 jQuery)
// const obj = $.parseJSON(jsonStr); // jQuery 3.0+ 已弃用
2. Python
import json
# 方式1:json.loads()
json_str = '{"name": "Bob", "age": 30}'
json_obj = json.loads(json_str)
print(json_obj["name"]) # 输出: Bob
# 方式2:ast.literal_eval(处理简单JSON,比eval安全)
import ast
safe_obj = ast.literal_eval(json_str)
# 方式3:demjson(第三方库,容错性强)
# pip install demjson
# import demjson
# obj = demjson.decode(json_str)
3. Java
import org.json.JSONObject; // 需引入 org.json 库
// 方式1:org.json 库
String jsonStr = "{\"name\":\"Charlie\",\"age\":20}";
JSONObject jsonObj = new JSONObject(jsonStr);
System.out.println(jsonObj.getString("name")); // 输出: Charlie
// 方式2:Gson(Google库)
// Gson gson = new Gson();
// MyClass obj = gson.fromJson(jsonStr, MyClass.class);
// 方式3:Jackson(Spring生态常用)
// ObjectMapper mapper = new ObjectMapper();
// MyClass obj = mapper.readValue(jsonStr, MyClass.class);
注意事项:
- 安全性:避免使用
eval()
(JS/Python),可能执行恶意代码。 - 格式校验:确保字符串是合法JSON,否则会抛出异常。
- 性能:大数据量时,Jackson/Gson(Java)或内置库(Python/JS)更高效。
根据语言和场景选择合适的方法即可。
// 来源:https://www.nzw6.com