尝试从 JSON 响应文本中选取数据

伊拉里

我试图从我的 JSON 响应文本中选择一些数据,如下所示:

{
   "status": "success",
   "reservations": [
      {
         "id": "22959",
         "subject": "SubjectName",
         "modifiedDate": "2017-04-03T06:04:24",
         "startDate": "2017-04-03T12:15:00",
         "endDate": "2017-04-03T17:00:00",
         "resources": [
            {
               "id": "17",
               "type": "room",
               "code": "codeName",
               "parent": {
                  "id": "2",
                  "type": "building",
                  "code": "buildingName",
                  "name": ""
               },
               "name": ""
            },
            {
               "id": "2658",
               "type": "student_group",
               "code": "groupCode",
               "name": "groupName"
            },
            {
               "id": "2446",
               "type": "student_group",
               "code": "groupCode",
               "name": "groupName"
            },
            {
               "id": "3137",
               "type": "realization",
               "code": "codeName",
               "name": ""
            },
            {
               "id": "3211",
               "type": "realization",
               "code": "codeName",
               "name": "name"
            }
         ],
         "description": ""
      },
{
         "id": "22960",
         "subject": "subjectName",
         "modifiedDate": "2017-04-04T06:04:33",
         "startDate": "2017-04-04T10:00:00",
         "endDate": "2017-04-04T16:00:00",
         "resources": [
            {
               "id": "17",
               "type": "room",
               "code": "codeName",
               "parent": {
                  "id": "2",
                  "type": "building",
                  "code": "codeName",
                  "name": ""
               },
               "name": ""
            },
            {
               "id": "2658",
               "type": "student_group",
               "code": "groupCode",
               "name": "groupName"
            },
            {
               "id": "2446",
               "type": "student_group",
               "code": "groupCode",
               "name": "groupName"
            }
         ],
         "description": ""
      }
]
}

我一直在尝试使用 JSON.parse() 并使用 for 循环浏览响应文本,但没有成功。我需要选择学科名称、房间名称、建筑物名称和两个 student_group 名称。

这是我的代码目前的样子:

var getData = {
                "startDate":,
                "endDate":,
                "studentGroup": [
                 ""]
            };



var data = new XMLHttpRequest();
           data.onreadystatechange = function () {             
               if (data.readyState == 4 && data.status == 200) {

                   try {
                       // Parse JSON
                       var json = JSON.parse(data.responseText);
                       // for-loops
                       for (var i = 0; i < json.reservations.length; i++) {
                           for (var x = 0; x < json.reservations[i].length; 
                            x++) { 
                               document.getElementById("test").innerHTML = 
                               json.reservations[i].subject;
                           }
                       }

                   } catch (err) {
                       console.log(err.message);
                       return;
                   }
               }
           };           

            // JSON query
           data.open("POST", "URL", true, "APIKEY", "PASS");
           data.setRequestHeader('Content-Type', 'application/json');
           data.send(JSON.stringify(getData));

如果我有超过 1 个主题名称,这只会打印最后一个主题名称。

我该怎么做?

帕维尔·格拉德基

您应该将解析的数据视为一个对象,因此为了让您继续前进,这将从所有返回的资源中获取所有唯一的学生组名称:

var studentGroups = []; 

for (var i = 0; i < json.reservations.length; i++) {
    if(json.reservations[i].resources != null){
        for(var j = 0; j < json.reservations[i].resources.length; j++){
            var resource = json.reservations[i].resources[j];
            if(resource.type === "student_group"){
                if(studentGroups.indexOf("groupName"))
                    studentGroups.push(resource.name);
                }
            }
        }
    }
}

当然,我不确定您想要以什么格式获得结果(这应该是一个平面数组还是另一个 JSON,也许只有第一个值对您很重要?),但我认为您应该已经知道如何处理话题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试通过php从json响应url获取数据时出错

来自分类Dev

尝试通过php从json响应url获取数据时出错

来自分类Dev

尝试解析xhr响应文本时出错(JSON.parse:JSON数据的第2行第1列的JSON数据后出现意外的非空白字符)

来自分类Dev

尝试使用PHP返回JSON数据

来自分类Dev

尝试使用python解析JSON数据

来自分类Dev

尝试从 json angular 获取数据时出错

来自分类Dev

将json数据放入数组的简单尝试

来自分类Dev

当我尝试从API响应访问json数据时,“类型'从不'属性不存在”

来自分类Dev

当我尝试从API响应访问json数据时,“类型'从不'属性不存在”

来自分类Dev

Laravel尝试对API JSON响应进行单元测试

来自分类Dev

尝试访问json响应时为“未定义”

来自分类Dev

尝试使用HttpRequestMessage发送JSON正文时的错误响应

来自分类Dev

尝试解析xhr响应文本时发生错误(JSON.parse:JSON数据的第2行第1列的JSON数据后出现意外的非空白字符)

来自分类Dev

尝试使用sequelize查询postgres JSON数据类型

来自分类Dev

尝试使用ng-repeat显示来自json的数据

来自分类Dev

仍在尝试了解mysql到json数据

来自分类Dev

尝试发布大型JSON数据时出现错误的请求错误

来自分类Dev

尝试从JSON URL接收数据并将其放入UILabel

来自分类Dev

尝试插入json数组时出现数据插入错误?

来自分类Dev

尝试从json文件获取数据时出现问题

来自分类Dev

尝试通过onAppear()显示json数据时TabView空白

来自分类Dev

尝试将JSON数据填充到ListView中

来自分类Dev

尝试从WebService获取数据时出现“无效的JSON原语”错误

来自分类Dev

尝试显示数据时,res.json()无法工作

来自分类Dev

尝试解析JSON数据,但标签未在Swift中更新

来自分类Dev

尝试发送POST请求并获取json数据,但得到400

来自分类Dev

尝试访问json数据(ajax)时未定义

来自分类Dev

尝试从php脚本获取Json数据时出错

来自分类Dev

尝试使用 JSon 数据重新加载 FSCalendar 但它崩溃了

Related 相关文章

  1. 1

    尝试通过php从json响应url获取数据时出错

  2. 2

    尝试通过php从json响应url获取数据时出错

  3. 3

    尝试解析xhr响应文本时出错(JSON.parse:JSON数据的第2行第1列的JSON数据后出现意外的非空白字符)

  4. 4

    尝试使用PHP返回JSON数据

  5. 5

    尝试使用python解析JSON数据

  6. 6

    尝试从 json angular 获取数据时出错

  7. 7

    将json数据放入数组的简单尝试

  8. 8

    当我尝试从API响应访问json数据时,“类型'从不'属性不存在”

  9. 9

    当我尝试从API响应访问json数据时,“类型'从不'属性不存在”

  10. 10

    Laravel尝试对API JSON响应进行单元测试

  11. 11

    尝试访问json响应时为“未定义”

  12. 12

    尝试使用HttpRequestMessage发送JSON正文时的错误响应

  13. 13

    尝试解析xhr响应文本时发生错误(JSON.parse:JSON数据的第2行第1列的JSON数据后出现意外的非空白字符)

  14. 14

    尝试使用sequelize查询postgres JSON数据类型

  15. 15

    尝试使用ng-repeat显示来自json的数据

  16. 16

    仍在尝试了解mysql到json数据

  17. 17

    尝试发布大型JSON数据时出现错误的请求错误

  18. 18

    尝试从JSON URL接收数据并将其放入UILabel

  19. 19

    尝试插入json数组时出现数据插入错误?

  20. 20

    尝试从json文件获取数据时出现问题

  21. 21

    尝试通过onAppear()显示json数据时TabView空白

  22. 22

    尝试将JSON数据填充到ListView中

  23. 23

    尝试从WebService获取数据时出现“无效的JSON原语”错误

  24. 24

    尝试显示数据时,res.json()无法工作

  25. 25

    尝试解析JSON数据,但标签未在Swift中更新

  26. 26

    尝试发送POST请求并获取json数据,但得到400

  27. 27

    尝试访问json数据(ajax)时未定义

  28. 28

    尝试从php脚本获取Json数据时出错

  29. 29

    尝试使用 JSon 数据重新加载 FSCalendar 但它崩溃了

热门标签

归档