📜  Flutter 将 json 字符串转换为 json - Javascript (1)

📅  最后修改于: 2023-12-03 15:00:48.836000             🧑  作者: Mango

Flutter将JSON字符串转换为JSON - Javascript

在Flutter开发中,经常会涉及到将JSON字符串转换为JSON - Javascript对象。而Flutter提供了内置的JSON库来处理JSON数据,并提供了一些便捷的方法来转换JSON字符串为Map或List类型。

代码示例
import 'dart:convert';

void main() {
  // JSON字符串
  String jsonString = '{"name": "John", "age": 30}';

  // 将JSON字符串转换为Map
  Map<String, dynamic> jsonMap = json.decode(jsonString);
  print(jsonMap['name']); // 输出 John

  // 将JSON字符串转换为List
  String jsonArrayString = '[{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]';
  List<dynamic> jsonArray = json.decode(jsonArrayString);
  print(jsonArray[0]['name']); // 输出 John
}

上述代码展示了如何将一个JSON字符串转换为Map或List类型。使用json.decode()方法将JSON字符串转换为指定类型的对象。

错误处理

当JSON字符串无法被成功解析为JSON对象时,json.decode()方法会抛出一个FormatException异常。可以使用try-catch语句来处理这种异常情况。

String jsonString = '{"name": "John",}'; // 注意这里有个额外的逗号
try {
  Map<String, dynamic> jsonMap = json.decode(jsonString);
  print(jsonMap);
} on FormatException catch (e) {
  print('Error: $e'); // 输出 Error: Unexpected character at position 14
}

上述代码中的JSON字符串是无效的,因为它含有一个额外的逗号。解析该字符串时,会抛出一个FormatException异常。

结论

Flutter提供了便捷的JSON库来处理JSON数据。通过使用json.decode()方法,可以从JSON字符串中创建Map或List对象。在处理JSON字符串时,需要小心处理可能出现的异常情况。