在 jQuery 中从 JSON 值创建字符串

Posted

技术标签:

【中文标题】在 jQuery 中从 JSON 值创建字符串【英文标题】:create string from JSON values in jQuery 【发布时间】:2013-01-19 08:01:15 【问题描述】:

我想从 JSON 对象创建一串 ISBN 以在 Google 图书中搜索多本图书。

我可以通过使用此路径解析 Google 图书的 JSON 来获取 ISBN:

volumeInfo.industryIdentifiers[0].identifier

(我这样做是为了得到一个简单的书单:jsfiddle.net/LyNfX)

如何将每个值串在一起以获得此查询结构,其中每个 ISBN 前面都有“isbn:”,第一个 ISBN 之后用“OR”分隔

https://www.google.com/search?btnG=Search+Books&tbm=bks&q=Springfield+isbn:1416549838+OR+isbn:068482535X+OR+isbn:0805093079+OR+isbn:0306810328

【问题讨论】:

如何获得第二个 ISBN? 是我使用jquery模板插件和each的小提琴 你搞定了吗? 看小提琴。它成功地列出了每本书的信息。我正在寻找的是从相同的信息创建一个字符串。 【参考方案1】:

从名为list 的 ISBN 字符串数组开始:

list.map(function(v)return "isbn:"+v;).join("+OR+")

至于建立您的 ISBN 列表,我理解它是您的 industryIdentifiers 中的 identifier 道具(如果 industryIdentifier 是真正的 Array):

var list = [];
volumeInfo.industryIdentifiers.forEach(function(e,i)list.push(e.identifier););

您也可以一举构建最终的字符串而不构建数组,但这意味着需要额外的逻辑来防止插入额外的分隔符(+OR+ 是分隔符)

var output = "";
volumeInfo.industryIdentifiers.forEach(function(e,i)output += "isbn:"+e.identifier+"+OR+";);
output.slice(0,-4); // clear out last +OR+

【讨论】:

太棒了。如何将 volumeInfo.industryIdentifiers.identifier 放入数组中以启动? 我不知道那是什么格式。可以发一下吗? 在我的小提琴 [jsfiddle.net/LyNfX] 中,我使用 jQuery 模板插件为每本书创建 html,如下所示: var mylist = "each items" + "" + "

title 是 $volumeInfo.title" + "

author 是 $volumeInfo.authors" + "

isbn10 是 $volumeInfo.industryIdentifiers[0].identifier" + "

/each";
所以我现在需要将每个 volumeInfo.industryIdentifiers.identifier 放入一个数组中,而不是将其打印到 html 中。那么我可以在那个数组上做你的 list.map ... - 如果我理解正确的话? 在这个相关的问题上,看起来这就是方法——这是在正确的轨道上吗? for(i=0;i***.com/questions/3442487/…【参考方案2】:
var arrayOfISBNs = [123,456,789...];
var result = "isbn:" + arrayOfISBNs.join(" OR isbn:")

只需使用数组连接。

【讨论】:

以上是关于在 jQuery 中从 JSON 值创建字符串的主要内容,如果未能解决你的问题,请参考以下文章

在反应中从 json 字符串渲染 HTML

在 Laravel 4 中从 Jquery Ajax Json 中检索值

您可以在 .NET 中从 JSON 实例化对象实例吗?

在jQuery中从JSON添加div?

如何在 AWS Glue 中从 CSV 创建结构化 JSON

在 jQuery 中从 JSON 加载 HTML 控件(即 Ajax serialiseArray 的逆向)