简体   繁体   English

如何将字符串转换为 flutter 中的列表?

[英]How to convert string to list in flutter?

I have an API that calls the json String array as follows:我有一个 API 调用 json 字符串数组,如下所示:

[concoxgt06, 0, 0, 0, JH 02AF 8525, img/markers/objects/land-truck.svg, {arrow_no_connection: arrow_red, arrow_stopped: arrow_red, arrow_moving: arrow_green, arrow_engine_idle: off}, arrow, #00FF44, 7, , 9297894107, 0@0, 7004924982,kumar, JH 02AF 8525, gps, acc, 28728, 3036, {source: rates, measurement: l100km, cost: 0, summer: 0, winter: 0, winter_start: 12-01, winter_end: 03-01}, , {stops: gps, min_moving_speed: 6, min_idle_speed: 3, min_diff_points: 0.0005, use_gpslev: false, min_gpslev: 5, use_hdop: false, max_hdop: 3, min_fuel_speed: 10, min_ff: 10, min_ft: 10}, {484: {name: Ignition, type: acc, param: acc, data_list: true, popup: true, result_type: logic, text_1: On, text_0: Off, units: , lv: 0, hv: 0, acc_ignore: false, formula: , calibration: [], dictionary: []}}, [], [], [pump, track, bats, acc, batl, gpslev, defense], true, true, 2020-06-11]

I intend to convert the json to the List in the dart.我打算将 json 转换为 dart 中的列表。 I tried the script below:我尝试了下面的脚本:

json.decode(response.body).cast<List<String>();

List<String> stringList = (jsonDecode(input) as List<dynamic>).cast<String>();

but it didn't work, how should the script be correct?但它不起作用,脚本应该如何正确?

Here's what error I receive这是我收到的错误

E/flutter (22486): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FormatException: Unexpected character (at character 2)
E/flutter (22486): [digitalsystemsdsf, 0, 0, 0, Bolero 2275, data/user/objects/2_b10518926dda5...
E/flutter (22486):  ^
E/flutter (22486): 
E/flutter (22486): #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1394:5)
E/flutter (22486): #1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1261:9)
E/flutter (22486): #2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:926:22)
E/flutter (22486): #3      _parseJson (dart:convert-patch/convert_patch.dart:31:10)
E/flutter (22486): #4      JsonDecoder.convert (dart:convert/json.dart:505:36)
E/flutter (22486): #5      JsonCodec.decode (dart:convert/json.dart:153:41)
E/flutter (22486): #6      jsonDecode (dart:convert/json.dart:96:10)
E/flutter (22486): #7      _HomeScreenContainerState.fetchFnSettings (package:speedotrack/component/component_home_screen.dart:111:13)
E/flutter (22486): <asynchronous suspension>
E/flutter (22486): #8      _HomeScreenContainerState.homeScreenMethods (package:speedotrack/component/component_home_screen.dart:89:5)
E/flutter (22486): #9      _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (22486): #10     _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (22486): #11     _FutureListener.handleValue (dart:async/future_impl.dart:141:18)
E/flutter (22486): #12     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:682:45)
E/flutter (22486): #13     Future._propagateToListeners (dart:async/future_impl.dart:711:32)
E/flutter (22486): #14     Future._completeWithValue (dart:async/future_impl.dart:526:5)
E/flutter (22486): #15     _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:36:15)
E/flutter (22486): #16     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:298:13)
E/flutter (22486): #17     MainPrefs.setMainPrefs (package:speedotrack/sharedPrefs/main_prefs.dart)
E/flutter (22486): #18     _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (22486): #19     _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (22486): #20     _FutureListener.handleValue (dart:async/future_impl.dart:141:18)
E/flutter (22486): #21     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:682:45)
E/flutter (22486): #22     Future._propagateToListeners (dart:async/future_impl.dart:711:32)
E/flutter (22486): #23     Future._addListener.<anonymous closure> (dart:async/future_impl.dart:391:9)
E/flutter (22486): #24     _rootRun (dart:async/zone.dart:1184:13)
E/flutter (22486): #25     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (22486): #26     _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (22486): #27     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter (22486): #28     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
E/flutter (22486): #29     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)

If you want to convert a string seperated with "," to list you could do it the following way:如果要将用“,”分隔的字符串转换为列表,可以通过以下方式进行:

String myString = "foo,bar,foobar";

List<String> stringList = myString.split(",");

But in your case it wouldn't do the job.但在你的情况下,它不会完成这项工作。 What you should do is convert the json to objects.您应该做的是将 json 转换为对象。 I suggest googling about json deserialization.我建议在谷歌上搜索 json 反序列化。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM