如何从响应主体获取数据

我正在使用Java中的Youtube API工作,并设法将一些数据存储为CommentThreadListResponse

以下是其节点的示例,但列表中包含大约100个节点。

 { "snippet" : { "topLevelComment" : { "snippet" : { "textDisplay" : "SOME COMMENT" } } } }, 

所以只有textDisplay仍然存在,因为我想将其提取到String中。 所以我的问题是“我怎么能这样做?”

让我们回答并分析它,为了使它更容易理解,我将放置一些索引值,并考虑响应注释

 //index0 { "id": "11", "snippet": { "topLevelComment": { "snippet": { "textDisplay": "SOME COMMENT 2 " } } } }, //index0 { "id": "22", "snippet": { "topLevelComment": { "snippet": { "textDisplay": "SOME COMMENT 2" } } } }, 

您将以上述格式获得响应,以便获取每个代码段的详细信息导航索引

comment[0]将提取响应的第一个元素。

comment[0].id将提取响应的第一个元素id。

comment[0].snippet将提取响应的第一个片段。

comment[0].snippet.topLevelComment将提取响应的第一个片段的topLevelComment。

所以在这样的情况下,我们可以阅读响应并获取我们需要的数据,您需要获取textDisplay,以便您可以使用以下代码,

 comments[0].snippet.topLevelComment.snippet.textDisplay 

要浏览所有索引,您可以使用以下各项

 for (x in comments) { comments[x].snippet.topLevelComment.snippet.textDisplay } 

目前尚不清楚数据的结构是否完全来自于您的问题,但是:

 var comments = [ { "id": "1111", "snippet" : { "topLevelComment" : { "snippet" : { "textDisplay" : "SOME COMMENT 2 " } } } }, { "id": "222", "snippet" : { "topLevelComment" : { "snippet" : { "textDisplay" : "SOME COMMENT 2" } } } }, ]' 

你需要一个serilization lib,checkout 如何将json字符串反序列化为对象然后

 for(var i = 0; i < comments.length; ++i) comments[i].snippet.topLevelComment.snippet.textDisplay