首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >读取JSON数据颤动遇到困难

读取JSON数据颤动遇到困难
EN

Stack Overflow用户
提问于 2021-04-14 17:08:21
回答 1查看 30关注 0票数 0

这是我的JSON数据结构:

代码语言:javascript
运行
AI代码解释
复制
[
  [
   {
    "nos": 0,
     "name": "A S MUSIC AND DANCE A CULTURAL ORGANIZATION",
    "unique_id": "AN/2020/0259067",
    "reg_details": [
     {
      "registered_with": "Registrar of Societies"
      },
     {
      "type_of_ngo": "Registered Societies (Non-Government)"
     },
     {
      "registration_no": "1534"
       },
       {
         "copy_of_registration_certificate": "Available"
          },
       {
         "copy_of_pan_card": "Available"
        },
       {
        "act_name": "Registration Act,1860"
        },
      {
       "city_of_registration": "Port Blair"
      },
       {
       "state_of_registration": "ANDAMAN & NICOBAR ISLANDS"
        },
         {
       "date_of_registration": "25-05-2016"
        }
      ],  

在我的this函数中:

代码语言:javascript
运行
AI代码解释
复制
 Future<void> _NgoDetail() async {
    String jsonString = await _loadANgoAsset();
    final jsonResponse = json.decode(jsonString);
    var rest = jsonResponse[0] as List;
    List list=[];
    list= rest.map<NGO>((json) => NGO.fromJson(json)).toList();
    debugPrint(list[0].regDetails[1].type_of_ngo);
  }

当我运行这行代码时:

代码语言:javascript
运行
AI代码解释
复制
debugPrint(list[0].regDetails[1].type_of_ngo);

结果是好的

代码语言:javascript
运行
AI代码解释
复制
I/flutter ( 5579): List<dynamic>
I/chatty  ( 5579): uid=10326(com.skillzup.mn.mn) 1.ui identical 117 lines
I/flutter ( 5579): List<dynamic>
I/flutter ( 5579): Registered Societies (Non-Government)

但当我运行这段代码时:

代码语言:javascript
运行
AI代码解释
复制
debugPrint(list[0].regDetails[2].registration_no);

我得到了这个错误:

代码语言:javascript
运行
AI代码解释
复制
I/flutter ( 5579): List<dynamic>
I/chatty  ( 5579): uid=10326(com.skillzup.mn.mn) 1.ui identical 117 lines
I/flutter ( 5579): List<dynamic>
I/flutter ( 5579): null

这个也是一样的:

代码语言:javascript
运行
AI代码解释
复制
debugPrint(list[0].regDetails[3].copy_of_registration_certificate);

错误:

代码语言:javascript
运行
AI代码解释
复制
Unhandled Exception: NoSuchMethodError: Class 'RegDetails' has no instance getter 'copy_of_registration_certificate'.

我想从这个接口获得的最重要的数据是: debugPrint(list2.regDetails8.date_of_registration);

但是我得到了这个错误:

代码语言:javascript
运行
AI代码解释
复制
I/flutter ( 5579): List<dynamic>
I/chatty  ( 5579): uid=10326(com.skillzup.mn.mn) 1.ui identical 117 lines
I/flutter ( 5579): List<dynamic>
I/flutter ( 5579): null

对于某些字段,数据显示正确,但对于某些字段,要么显示为空,要么显示某些错误。我遗漏了什么?

这是我的NGO和注册类:

代码语言:javascript
运行
AI代码解释
复制
class NGO {
  String name;
  String id;
  List<RegDetails> regDetails;
  contactDetails ContactDetails;
  Members members;
  WorkingSectors workingSectors;

  NGO(
      {this.members, this.regDetails, this.name, this.workingSectors, this.ContactDetails, this.id,});

  
  factory NGO.fromJson(Map<String, dynamic> json) {
    var list = json['reg_details'] as List;
    print(list.runtimeType);
    List<RegDetails> regDetails = list.map((i) => RegDetails.fromJson(i)).toList();


    return NGO(
      id: json["unique_id"],
      name: json['name'],
     regDetails: regDetails


    );
  }
}

class RegDetails {
  String registration_no;
  String type_of_ngo;
  String registered_with;
  String copy_of_pan_card;
  String date_of_registration;
  String city_of_registration;
  String state_of_registration;
  String FCRA;

  RegDetails(
      {this.FCRA = 'Not Available', this.city_of_registration, this.copy_of_pan_card, this.date_of_registration, this.registered_with, this.registration_no, this.state_of_registration, this.type_of_ngo});

  factory RegDetails.fromJson(Map<String, dynamic> json){
    return RegDetails(
      registration_no: json['registeration_no'],
      type_of_ngo: json['type_of_ngo'],
      registered_with: json['registered_with'],
      copy_of_pan_card: json['copy_of_pan_card'],
      date_of_registration: json['date_of_registeration'],
      city_of_registration: json['city_of_registeration'],
      state_of_registration: json['state_of_registeration'],
    );
  }
}
EN

回答 1

Stack Overflow用户

发布于 2021-04-14 18:18:30

由于这段代码中的拼写错误

代码语言:javascript
运行
AI代码解释
复制
  factory RegDetails.fromJson(Map<String, dynamic> json){
    return RegDetails(
      registration_no: json['registration_no'],
      type_of_ngo: json['type_of_ngo'],
      registered_with: json['registered_with'],
      copy_of_pan_card: json['copy_of_pan_card'],
      date_of_registration: json['date_of_registeration'],
      city_of_registration: json['city_of_registeration'],
      state_of_registration: json['state_of_registeration'],
    );
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67096137

复制
相关文章
“单播”、“组播”和“多播”
摘自"百度知道",我不知道! 当前的网络中有三种通讯模式:单播、广播、组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。 一、单播: 主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。 如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。 但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。 网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。 单播的优点:
菩提树下的杨过
2018/01/23
3.3K0
组播、单播、多播
主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。
233333
2019/05/25
1.7K0
64.QT-单播、广播、组播
单播用来一个UDP客户端发出的数据报只发送到另一个指定地址和端口的UDP客户端,是一对一的数据传输。 我们在以本地IP为例,初始化如下所示:
诺谦
2021/06/29
2.1K0
android之通过Button的监听器往adapter中添加数据时出错
那么ListView里面展示出来的item全都是最后存进去的那个,而且在点击item之后,从model里面输出来的内容也都是一样的,
全栈程序员站长
2022/07/20
7560
科普帖:什么是组播?组播和单播的区别是什么?
作为IP传输三种方式之一,组播指的是报文从一个源发出,被转发到一组特定的接收者,相同的报文在每条链路上最多有一份。相较于传统的单播和广播,组播可以有效地节约网络带宽、降低网络负载,所以被广泛应用于IPTV、实时数据传送和多媒体会议等网络业务中。
IT运维技术圈
2022/06/27
19.6K0
科普帖:什么是组播?组播和单播的区别是什么?
以编程方式创建Vue.js组件实例
最近参与了一个Vue.js项目,项目中需要能够以编程方式创建组件。通过编程,意思是使用JavaScript创建和插入组件,而无需在模板中编写任何内容。
前端知否
2020/03/23
8K3
Centos添加yum源+rpm出错
centos刚装完的时候搜不到什么软件,具体yum的源怎么设置也还没弄明白,网上查,好多都让改/etc/yum.repos.d/目录里的东西,不过改了之后不太管用。
用户1168904
2021/05/21
1.1K0
Eclipse 项目以非gradle方式导入Android Studio
对于以前习惯了Eclipse ide的开发这来说,要把项目导入到studio是一件很不愿接受的事情,但是。。。毕竟人家官方都给出建议了,并且年后会逐渐被淘汰 如下图所示是一个典型的eclipse项目
xiangzhihong
2018/01/30
1.3K0
Eclipse 项目以非gradle方式导入Android Studio
以编程方式执行Spark SQL查询的两种实现方式
摘 要 在自定义的程序中编写Spark SQL查询程序 1.通过反射推断Schema package com.itunic.sql import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} /**   * Created by itunic.com on 2017/1/2.   * Spark SQL   * 通过反射推断Schema   * by me:   * 我本沉默是关注互联
天策
2018/06/22
2.1K0
android–手机桌面添加网址链接图标(解决方式)
2、在drawable文件夹下加入图标文件,如icon.png;在values文件夹下的strings.xml文件里添加名称。如websitename。
全栈程序员站长
2022/07/07
1.4K0
HttpWebRequest 在出错时获取response内容
HttpWebRequest 请求时,服务器会返回500 501这些错误 并包含错误信息,通过如下代码可以拿到错误信息
冰封一夏
2019/09/11
1.4K0
:Android网络编程--XML之解析方式:SAX
任何放置在资源(res)目录下的内容可以通过应用程序的R类访问,这是被Android编译过的,而任何放置在资产(assets)目录下的内容会保持它的原始文件格式,为了读取它们,必须使用AssetManager来以字节流的方式读取文件,所以文件和数据保存在资源中更方便访问。
yuanyuan
2019/09/10
6420
Linux用户和组管理,添加修改用户,添加修改组,加入组,移除组
1.安全介绍3A Authentication: 认证,用户名和对应口令 Authorization: 授权,不同用户权限不同 Accouting/Audition: 审计 2. 所属者和所属组 user: 用户 用户标识: UserID, UID(16bits二进制,0-65535) 管理员: root, UID=0 普通用户: 1-65535(又分系统用户和登陆用户两种) 系统用户: 1-499(centos6), 1-999(centos7)由系统保留,作为管理账号,对守护进程获取资源进行权限分配;
Ryan-Miao
2018/07/09
6.9K0
点击加载更多

相似问题

以编程方式添加DeskBand时出错

11

以编程方式添加复选框时出错

11

使用循环以编程方式添加NSMutableArray时出错

11

Android:以编程方式添加TextInputLayout

29

以编程方式添加项目- Android

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档