【问题标题】:Using .text() to get formatting of JSON data使用 .text() 获取 JSON 数据的格式
【发布时间】:2012-09-01 08:50:04
【问题描述】:

我正在使用:

function pipeCallback(obj) {

获取 Yahoo 管道的内容(以 JSON 格式)。然后我在里面创建一个字符串:

document.write("<div......);
var buildstring = ".......;
document.write(buildstring);
document.write("</div>");

一切正常,除了字符串中的一项:

obj.value.items[x].description.content

包含大量文本,并且已去除其格式。有没有办法定义一个 var(使用 .text()?)来保持格式,然后在字符串中使用定义的术语 - 例如类似:

var description = (obj.value.items[x].description.content).text()

然后在 buildstring 中使用术语“描述”代替 obj.value.items[x].description.content。

感谢您的任何建议/帮助。

编辑

@Barmar 谢谢。我试过了(我认为...):

var description = function() {return (obj.value.items[x].description.content).text()};

var buildstring = "<table><tr><img src=" + imageurl  + "> <b>" + obj.value.items[x].title + "</b><br /><td>" + description() + "</td></tr></table><br />";

(imageurl 是一个单独定义的变量)。我想我一定错过了你的建议的重点(或者一开始没有给出正确的信息)。无论如何..它没有工作。

编辑#2

function pipeCallback(obj) {
document.write("<div id=testdiv><b>LATEST NEWS</b><hr>");
var x;
for (x = 0; x < obj.count ; x++)
{

var imageurl = (typeof obj.value.items[x]["media:content"] == 'undefined') ? "http://default.png" : obj.value.items[x]["media:content"].url;

var buildstring = "<table><tr><img src=" + imageurl  + "> <b>" + obj.value.items[x].title + "</b><br /><td>" + obj.value.items[x].description.content + "</td></tr></table><br />";
document.write(buildstring);
buildstring = null;
}
document.write("</div>");

}

【问题讨论】:

  • 当您使用您拼出的长格式时它是否有效?我的回答只是缩写该表达式的一种方式,它不会改变行为。
  • @Barnar - 当我只有上面的第二行代码与 obj.value.items[x].description.content 代替时,它以原始形式工作(即没有'var描述')描述()。唯一的事情是,当然,我会得到未格式化的文本。谢谢
  • 我以为你最后用的是.text()。那样有用吗?如果是这样,那么我的版本也应该如此——这只是写同一件事的一种更短的方式。不过,我真的不明白你想做什么;我不明白您希望它如何创建不存在的格式。
  • 不,这样不行。我要做的就是获取 JSON 对象中的所有

    ....

    标记。目前我只得到一个长文本块——即使当我查看 Yahoo Pipes 中的提要时,也会显示段落。我已将完整代码的相关部分放在上面(有效)。谢谢。
  • 我很茫然。如果标签在原始 JSON 字符串中,我不知道为什么在解析时它们会被删除; JSON 不会尝试解释字符串的内容。如果他们被删除,我想不出办法让他们回来。您使用什么 API 来解析 JSON?

标签: json formatting


【解决方案1】:

你可以这样做:

var description = function() {return (obj.value.items[x].description.content).text()};

然后使用description() 得到这个。

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2020-11-25
    • 2021-07-01
    • 2016-03-30
    • 2018-08-14
    • 2016-01-04
    相关资源
    最近更新 更多