我有如下的 JSON 结构,我正试图在 flutter 中使用它。我需要检索嵌套的 JSON 数组图像的内容,但我不完全知道这样做的正确方法,我假设创建一个“数据”的父对象类并为图像创建另一个对象类就可以完成这项工作.这个 Json 结构是否可以在 flutter 和 dart 中解析?帮助将不胜感激。
{
"data": {
"id": "1",
"title": "Prof. Ernesto Shanahan Jr.",
"slug": "laudantium",
"description": "Enim voluptas iure deleniti eveniet autem in. Exercitationem veniam est ducimus velit incidunt sit recusandae. Sed animi harum voluptatibus. Optio asperiores aspernatur iure quia. Quia natus est quo odit fugit omnis mollitia et. In repellendus ut facilis ut. Non aut illo optio quisquam laudantium. Qui blanditiis consequuntur asperiores. Qui pariatur reiciendis voluptatibus magni. Voluptatem reiciendis quis vitae eligendi. Iste qui dolor eum vitae nobis asperiores aut. Non perferendis ut hic id qui rerum ut. Error tenetur ut cum non quia natus quibusdam. Rerum facilis quibusdam sit occaecati quae ea. Ipsum nisi possimus sed similique autem quia quod.",
"excerpts": "Animi nihil beatae et. A et molestiae eum aut vitae consequuntur distinctio. Officiis sit praesentium fuga omnis ut autem nisi atque.",
"geo": "27.6406821;85.3203836",
"deleted_at": null,
"tags": [
{
"id": "1",
"title": "Mrs. Daniela Goldner Sr.",
},
{
"id": "6",
"title": "Raegan Quitzon",
},
{
"id": "10",
"title": "Blanca Hartmann",
}
],
"categories": [
{
"id": "7",
"title": "Mia Franecki",
"slug": "dolor",
"description": "Voluptatibus corporis eos adipisci odit laborum voluptatem. Repudiandae veniam ad facere id ipsam delectus. Fugiat quia non molestiae optio corrupti animi. Quaerat qui culpa distinctio dicta id voluptatum consectetur. Alias esse ut est sapiente quos et. In fugiat doloribus harum rerum eos neque quo. In rerum minus iure dolorem ex architecto nemo numquam. Aut quam qui error et non consequuntur officia pariatur. Sint ut labore ea excepturi quis officiis. Ipsam quisquam vitae sequi quos distinctio sit libero. Sed iure sed voluptates inventore debitis accusantium.",
"excerpts": "Quibusdam ut voluptas blanditiis sunt. Labore illo sit nihil et quod dolor eveniet. Nobis ullam ea adipisci.",
"deleted_at": null,
},
{
"id": "8",
"title": "Mrs. Libby Will DDS",
"slug": "vitae",
"description": "Et temporibus neque delectus facilis repellat quasi. Autem quibusdam sed quia delectus et dolorem facere. Dolorem suscipit omnis dolor voluptates asperiores atque eveniet. Laboriosam velit est omnis quia recusandae a. Assumenda nihil ut neque omnis voluptas magni repellendus. Ratione eum quam provident animi omnis tenetur nesciunt. Molestias et qui asperiores porro. Adipisci animi fugiat sunt dolores. Sit ad quis dolorum totam quia. Veritatis qui qui quidem quas quaerat ratione.",
"excerpts": "Est qui sit praesentium. Unde neque est quasi facilis aut aliquam voluptas. Alias molestias et in dicta omnis et laudantium.",
"deleted_at": null,
}
],
"landmarks": [],
"images": [
{
"id": "1",
"title": "Place Image 01",
"slug": "place01",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "2",
"title": "Place Image 02",
"slug": "place02",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "3",
"title": "Place Image 03",
"slug": "place03",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "4",
"title": "Landmark Image 01",
"slug": "landmark01",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "5",
"title": "Landmark Image 02",
"slug": "landmark02",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "6",
"title": "Landmark Image 03",
"slug": "landmark03",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "7",
"title": "Activity Image 01",
"slug": "activity01",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "8",
"title": "Activity Image 02",
"slug": "activity02",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "9",
"title": "Activity Image 03",
"slug": "activity03",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "10",
"title": "Itinerary Image 01",
"slug": "itinerary01",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "11",
"title": "Itinerary Image 02",
"slug": "itinerary02",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
},
{
"id": "12",
"title": "Itinerary Image 03",
"slug": "itinerary03",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quod iam a me expectare noli. Non igitur bene. Ego quoque, inquit, didicerim libentius si quid attuleris, quam te reprehenderim.",
"byline": "Prabidhee Innovations / Sample Images",
"deleted_at": null
}
],
"featured_image_url": "https://travoyay.com/gallery/place01.jpg"
}
}
最佳答案
您使用 dart:convert 中的 jsonParse 将 JSON 解析为 Dart 映射和列表
例子:
String myJsonSource = ....;
var jsonData = jsonParse(myJsonSource);
for (var imageData in jsonData["data"]["images"]) {
// imageData is a Map<String, dynamic>
// You can use the `imageData` values in any way you want,
// for example if you have an `Image` class, you can do:
var image = Image(
id: imageData["id"],
title: imageData["title"],
slug: imageData["slug"],
description: imageData["description"]);
// or
var image2 = Image.fromJson(imageData);
// do something with image.
}
您必须自己编写 Image 类,也许是:
class Image {
final String id;
final String title;
final String slug;
final String description;
Image({this.id, this.title, this.slug, this.description});
factory Image.fromJson(Map<String, Object> imageData) =>
Image(id: imageData["id"], title: imageData["title"],
slug: imageData["slug"], description: imageData["description"]);
}
关于android - 解析嵌套的 Json 数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54516439/
我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
这道题是thisquestion的逆题.给定一个散列,每个键都有一个数组,例如{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,}将其转换为嵌套哈希的最佳方法是什么{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,} 最佳答案 这是一个迭代的解决方案,递归的解决方案留给读者作为练习:defconvert(h={})ret={}h.eachdo|k,v|node=retk[0..-2].each{|x|node[x]||={};node=node[x]}node[
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
下面例子中的Nested和Child有什么区别?是否只是同一事物的不同语法?classParentclassNested...endendclassChild 最佳答案 不,它们是不同的。嵌套:Computer之外的“Processor”类只能作为Computer::Processor访问。嵌套为内部类(namespace)提供上下文。对于ruby解释器Computer和Computer::Processor只是两个独立的类。classComputerclassProcessor#Tocreateanobjectforthisc
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的