美文网首页Flutter
Flutter 字符串与JSON相互转化

Flutter 字符串与JSON相互转化

作者: 独孤流 | 来源:发表于2019-06-06 19:23 被阅读0次

前言

近期调接口加密,iOS原生已经调通的情况下,直接把iOS里的Objective-C代码拷贝到flutter的插件包里调用,居然花了我3天时间,遇到的问题基本上都很无理头的情况,比如本来需要传输json字符串,结果直接传了toString()字符串,另外一个就是过度为了追求代码的复用,导致判断逻辑过于复杂,不利于查找bug,以后写代码尽量功能分离,不要为了追求代码的复用而牺牲代码的可读性,功能模块化

遇到的问题1:

使用toString()方法能将对象转换成字符串,但是会丢失引号等信息,不再是标准JSON,导致服务端解析不正常

json转换为字符串

import 'dart:convert' as convert;
/// json转换为字符串
void testJson2String(){
  var user = { "name": "John Smith", "email": "john@example.com"};
  String jsonString = convert.jsonEncode(user);
  String normalString2 = user.toString();
  print('打印对象: $user');
  print('打印toString: $normalString2');
  print('打印JSON: $jsonString');
  var nameList = ["小明","韩梅梅","李华"];
  String normalNameString = nameList.toString();
  String josnNameString = convert.jsonEncode(nameList);
  print(nameList);
  print(normalNameString);
  print(josnNameString);
}

打印结果

打印对象: {name: John Smith, email: john@example.com}
打印toString: {name: John Smith, email: john@example.com}
打印JSON: {"name":"John Smith","email":"john@example.com"}
[小明, 韩梅梅, 李华]
[小明, 韩梅梅, 李华]
["小明","韩梅梅","李华"]

字符串转json

/// 字符串转json
void testString2Json(){
  var jsonTxt1 = '{ "name": "John Smith", "email": "john@example.com"}';
  Map<String, dynamic> user = convert.jsonDecode(jsonString1);
  var jsonTxt2 = '["小明","韩梅梅","李华"]';
  List nameList = convert.jsonDecode(jsonTxt2);
}

相关文章

网友评论

    本文标题:Flutter 字符串与JSON相互转化

    本文链接:https://www.haomeiwen.com/subject/ksauxctx.html