Json 类型';列表<;动态>';不是类型为';列表<;字符串>';

Json 类型';列表<;动态>';不是类型为';列表<;字符串>';,json,api,flutter,dart,flutter-dependencies,Json,Api,Flutter,Dart,Flutter Dependencies,我想在DropDownFeild中传递这个json数据。DropDownFeild是一个第三方小部件,它将数据作为其名为“items”的属性中的字符串列表,但我面临这个错误。请帮助我,让我明白我错在哪里 { "locations": [ "1st block jayanagar", "1st phase jp nagar", "2nd phase judicial layout", "2nd stage n

我想在DropDownFeild中传递这个json数据。DropDownFeild是一个第三方小部件,它将数据作为其名为“items”的属性中的字符串列表,但我面临这个错误。请帮助我,让我明白我错在哪里

{
"locations": [
"1st block jayanagar",
"1st phase jp nagar",
"2nd phase judicial layout",
"2nd stage nagarbhavi",
"5th block hbr layout",
"5th phase jp nagar",
"6th phase jp nagar",
"7th phase jp nagar",
"8th phase jp nagar",
"9th phase jp nagar",
"aecs layout",
 ]
}
════════ widgets库捕获到异常═══════════════════════════════════════════════════════
生成DropDownField时引发了以下_TypeError(脏,依赖项:[MediaQuery],状态:DropDownFieldState#b3785):
类型“List”不是类型“List”的子类型
导致错误的相关小部件是:
下降场file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/widgets/formWidget.dart:38:11
引发异常时,这是堆栈:
#0 dropdownfield状态。\u项目(包:dropdownfield/dropdownfield.dart:200:30)
#1个新的DropDownField。(包装:dropdownfield/dropdownfield.dart:175:71)
#2 FormFieldState.build(包:flatter/src/widgets/form.dart:526:26)
#3 StatefulElement.build(包:flatter/src/widgets/framework.dart:4792:27)
#4 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4675:15)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
I/SurfaceView(18574):updateWindow--setFrame,this=io.flatter.embedding.android.flattersurfaceview{343db9ev.E………I.0,0-7201280}
I/SurfaceView(18574):updateWidow--OnPreDrawListener,mHaveFrame=true,this=io.flatter.embedding.android.flatterSurfaceView{343db9e V.E………I.0,0-7201280}
════════ 呈现库捕获到异常═════════════════════════════════════════════════════
底部的RenderFlex溢出了99551像素。
导致错误的相关小部件是:
纵队file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/pages/formpage.dart:32:16
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ widgets库捕获到异常═══════════════════════════════════════════════════════
类型“List”不是类型“List”的子类型
导致错误的相关小部件是:
下降场file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/widgets/formWidget.dart:38:11
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ widgets库捕获到异常═══════════════════════════════════════════════════════
类型“List”不是类型“List”的子类型
导致错误的相关小部件是:
下降场file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/widgets/formWidget.dart:38:11
════════════════════════════════════════════════════════════════════════════════════════════════════
V/InputMethodManager(18574):开始输入:io.flatter.embedding.android.flatterview{b02d67f VFE..F..I.0,0-7201280}ic=null tba=android.view.inputmethod。EditorInfo@d855bb2controlFlags=#100
D/ActivityThread(18574):ACT-AM_ON_PAUSE_称为ActivityRecord{c04ff16 token=android.os。BinderProxy@4dd8097{com.example.homepricepredictor/com.example.homepricepredictor.MainActivity}
D/ActivityThread(18574):处理的ACT-PAUSE_活动:0/android.os。BinderProxy@4dd8097
V/ActivityThread(18574):完成ActivityRecord{c04ff16 token=android.os的停止。BinderProxy@4dd8097{com.example.homepricepredictor/com.example.homepricepredictor.MainActivity}}:show=true-win=com.android.internal.policy。PhoneWindow@1647703
D/ActivityThread(18574):ACT-STOP_ACTIVITY_SHOW处理:0/android.os。BinderProxy@4dd8097

我想以下修复方法会有所帮助:

。。。
下降场(
控制器:位置控制器,
hintText:“选择位置”,
启用:对,
项目:locationDataBangalore[“位置”].cast(),
),
...

这是因为dart将locationDataBangalore[“locations”]的值视为动态值的列表,所以您应该将它们转换为字符串。

谢谢@Alex Radzishevsky这是有效的。我也理解了这个概念谢谢!
{
"locations": [
"1st block jayanagar",
"1st phase jp nagar",
"2nd phase judicial layout",
"2nd stage nagarbhavi",
"5th block hbr layout",
"5th phase jp nagar",
"6th phase jp nagar",
"7th phase jp nagar",
"8th phase jp nagar",
"9th phase jp nagar",
"aecs layout",
 ]
}
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following _TypeError was thrown building DropDownField(dirty, dependencies: [MediaQuery], state: DropDownFieldState#b3785):
type 'List<dynamic>' is not a subtype of type 'List<String>'

The relevant error-causing widget was: 
  DropDownField file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/widgets/formWidget.dart:38:11
When the exception was thrown, this was the stack: 
#0      DropDownFieldState._items (package:dropdownfield/dropdownfield.dart:200:30)
#1      new DropDownField.<anonymous closure> (package:dropdownfield/dropdownfield.dart:175:71)
#2      FormFieldState.build (package:flutter/src/widgets/form.dart:526:26)
#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4792:27)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:15)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
I/SurfaceView(18574): updateWindow -- setFrame, this = io.flutter.embedding.android.FlutterSurfaceView{343db9e V.E...... ......I. 0,0-720,1280}
I/SurfaceView(18574): updateWindow -- OnPreDrawListener, mHaveFrame = true, this = io.flutter.embedding.android.FlutterSurfaceView{343db9e V.E...... ......I. 0,0-720,1280}

════════ Exception caught by rendering library ═════════════════════════════════════════════════════
A RenderFlex overflowed by 99551 pixels on the bottom.
The relevant error-causing widget was: 
  Column file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/pages/formpage.dart:32:16
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
type 'List<dynamic>' is not a subtype of type 'List<String>'
The relevant error-causing widget was: 
  DropDownField file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/widgets/formWidget.dart:38:11
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
type 'List<dynamic>' is not a subtype of type 'List<String>'
The relevant error-causing widget was: 
  DropDownField file:///home/sidd/AndroidStudioProjects/home_price_predictor/lib/widgets/formWidget.dart:38:11
════════════════════════════════════════════════════════════════════════════════════════════════════
V/InputMethodManager(18574): START INPUT: io.flutter.embedding.android.FlutterView{b02d67f VFE...... .F....I. 0,0-720,1280} ic=null tba=android.view.inputmethod.EditorInfo@d855bb2 controlFlags=#100
D/ActivityThread(18574): ACT-AM_ON_PAUSE_CALLED ActivityRecord{c04ff16 token=android.os.BinderProxy@4dd8097 {com.example.homepricepredictor/com.example.homepricepredictor.MainActivity}}
D/ActivityThread(18574): ACT-PAUSE_ACTIVITY handled : 0 / android.os.BinderProxy@4dd8097
V/ActivityThread(18574): Finishing stop of ActivityRecord{c04ff16 token=android.os.BinderProxy@4dd8097 {com.example.homepricepredictor/com.example.homepricepredictor.MainActivity}}: show=true win=com.android.internal.policy.PhoneWindow@1647703
D/ActivityThread(18574): ACT-STOP_ACTIVITY_SHOW handled : 0 / android.os.BinderProxy@4dd8097