dart 将对象转换为可编码对象失败:“SharedString”的示例

vbkedwbf  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(29)

试图使用josnEncode()Map转换为JSON,但它抛出了

Converting object to an encodable object failed: Instance of 'SharedString'
#0      _JsonStringifier.writeObject (dart:convert/json.dart:793:7)
#1      _JsonStringifier.writeMap (dart:convert/json.dart:874:7)
#2      _JsonStringifier.writeJsonValue (dart:convert/json.dart:829:21)
#3      _JsonStringifier.writeObject (dart:convert/json.dart:784:9)
#4      _JsonStringStringifier.printOn (dart:convert/json.dart:982:17)
#5      _JsonStringStringifier.stringify (dart:convert/json.dart:967:5)
#6      JsonEncoder.convert (dart:convert/json.dart:345:30)
#7      JsonCodec.encode (dart:convert/json.dart:232:37)

                             excel_to_json_converter.dart:39
<asynchronous suspension>

字符串
我代码:

String data = jsonEncode(
    finalArJson,
  );

hts6caw3

hts6caw31#

我想你在这里能找到更好的。请检查一下这个!
[https://stackoverflow.com/questions/49753412/converting-object-to-an-encodable-object-failed][1]
您应该确保“finalArJson”中的所有对象都是实现toJson方法的类的示例,或者是JSON编码原生支持的类型(例如,int,double,String,List,Map)。
例如

void main() {
  List<CustomObject> finalArJson = [
    CustomObject('value1', 42),
    CustomObject('value2', 99),
    // Add more CustomObject instances or other supported types
  ];

  // Convert List<CustomObject> to List<Map<String, dynamic>>
  List<Map<String, dynamic>> jsonList = finalArJson.map((obj) => obj.toJson()).toList();

  // Convert the entire list to a JSON-formatted string
  String data = jsonEncode(jsonList);

  print(data);
}

字符串
您的自定义对象

class CustomObject {
  String property1;
  int property2;

  CustomObject(this.property1, this.property2);

  // Implement the toJson method for custom objects
  Map<String, dynamic> toJson() {
    return {
      'property1': property1,
      'property2': property2,
    };
  }
}


输出

[
  {"property1": "value1", "property2": 42},
  {"property1": "value2", "property2": 99}
]


希望对你有帮助。谢谢

相关问题