1

Google スプレッドシートから JSON を読み取っていて、entry.content.$t 内のテキストにアクセスするのに助けが必要です。テキストは、スプレッドシートの「説明」という名前の列です。スプレッドシートのフィードは (削除されました)

これまでのところ、私のスクリプトは

function listChapters(root) {
    var feed = root.feed;
    var entries = feed.entry || [];
    var html = ['<ul>'];
    for (var i = 0; i < entries.length; ++i) {
        var chlist = entries[i];
        var title = (chlist.title.type == 'html') ? chlist.title.$t : escape(chlist.title.$t);
        var chapters = chlist.content.$t;
        html.push('<li>', chapters, '</li>');
    }
    html.push('</ul>');
    document.getElementById("chapterlist").innerHTML = html.join("");
}

問題は - $t から "説明" を読んで var の章に配置するにはどうすればよいですか?

4

1 に答える 1

1

その中のテキストchlist.content.$tは、ほぼ適切にフォーマットされた JSON ですが、完全ではありません。適切にフォーマットされていないため、プロパティをJSON.parse()取得できるオブジェクトを作成するために使用することはできません。description

description元の の代わりに使用されるを抽出するブルート フォース アプローチを次に示しhtml.push('<li>', chapters, '</li>');ます。

// Get the text between 'description: ' and 'Chapter website:'
var descStart = chapters.indexOf('description:')+13;  //+length of 'description: '
var descEnd = chapters.indexOf('Chapter website:');
var description = chapters.substring(descStart,descEnd);

html.push('<li>', description, '</li>');

これでテストし、デバッガーで結果を確認します:

function test() {
  var url = '---URL---';
  var result = UrlFetchApp.fetch(url);
  var text = result.getContentText();
  var bodytext = Xml.parse(text,true).html.body.getText();
  var root = JSON.parse(bodytext);
  listChapters(root);
}
于 2013-09-04T19:31:34.510 に答える