如何根据json中的id获取字符串

时间:2017-12-06 07:50:34

标签: c# jquery json

我将文本作为输入并通过文本剃刀API获取响应。现在如何根据单词位置(id)得到单词(字符串)。

此处string和id位于不同的节点中。

注意:此处获取单词位置0,1我想使用Jquery在我的前端显示“The Tiger”

JSON

{
    "response": {
        "sentences": [{
            "position": "0",
            "words": [{
                "position": "0",
                "token": "The"
            },
            {
                "position": 1,
                "token": "Tiger"
            }],
            "nounPhrases": [{
                "id": "0",
                "wordPositions": ["0", "1"]
            }]
        }]
    }
} 

我尝试过什么

var entailments = data["entailmentsAnalysis"];
        entailments = JSON.parse(entailments);
        var Razorentailments = entailments["response"]["nounPhrases"];
        for (var i = 0; i < Razorentailments.count; i++) {
            html = '';
            html += '<tr><td>' + Razorentailments[i]["wordPositions"] + '</td></tr>'
            $("#TextRazorEntailments").append(html);
        } 

我的Json格式

"response": {
        "sentences":[],
         "nounPhrases":[]
}

1 个答案:

答案 0 :(得分:1)

我认为data["entailmentsAnalysis"]超出您提供的范围,但我已做出相应调整。

编辑 - 调整以适应JSON要求的变化

var entailments = data["entailmentsAnalysis"];
var json = JSON.parse(entailments);
var sentenceList = json["response"]["sentences"];
var nounPhraseList = json["response"]["nounPhrases"];
for (var i = 0; i < nounPhraseList.length; i++) {
    for (var j = 0; j < sentenceList.length; j++) {
        var html = '<tr><td>';
        var wordList = sentenceList[j]["words"];
        for (var k = 0; k < wordList.length; k++) {
            if (nounPhraseList[i].wordPositions.indexOf(wordList[k].position.toString()) != -1) {
                html += wordList[k].token + " ";
            }
        }
        html = html.slice(0, -1);
        html += '</td></tr>';
        $("#TextRazorEntailments").append(html);
    }

}