AJAX /javascript中解析json url

a1o7rhls  于 2023-06-07  发布在  Java
关注(0)|答案(1)|浏览(148)

我试图创建一个 AJAX 请求,它将调用json URL,解析它,然后对于每个URL属性(在这个json中)将执行这个属性的json请求,然后带回我的版本字段和id。
这是我写的代码:

$(document).ready(function () {
        $.ajax({
          url:'http://build-20003.eu1.kokol.com:8080/job/ios_sdk/api/json?pretty=true&tree=builds[*]',
          method: 'GET',
          headers: {'authorization': 'Basic ' + btoa('elior:3cbe5b03748e8f3f800e')}
        }).done(function(data) {
                var arrParent = JSON.parse(data);                               
                var i;
                var j;
                for(j = 0; j < arrParent.length; j++) {
                        $.ajax({
                          url:data.build[j].url,
                          method: 'GET',
                          headers: {'authorization': 'Basic ' + btoa('elior:3cbe5b03748e8f3f800e')}
                        }).done(function(datajob) {
                                var arr = JSON.parse();
                                for(i = 0; i < arr.length; i++) {
                                        out += "<tr><td>" +
                                        arr[i].number +
                                        "</td><td>" +
                                        arr[i].version +
                                        "</td><td>" +
                                        arr[i].timestamp +
                                        "</td></tr>";
                                }                               
                        });
                }
                document.getElementById("id01").innerHTML = out;
                })
});     
</script>

这是第一个json URL的例子:

{
  "builds" : [
    {
      "actions" : [
        {
          
        },
        {
          
        },
        {
          
        },
        {
          
        },
        {
          
        },
        {
          
        }
      ],
      "artifacts" : [
        
      ],
      "building" : false,
      "description" : null,
      "duration" : 32640,
      "estimatedDuration" : 33113,
      "executor" : null,
      "fullDisplayName" : "ios_sdk #282",
      "id" : "2016-06-20_09-32-23",
      "keepLog" : false,
      "number" : 282,
      "result" : "SUCCESS",
      "timestamp" : 1466415143000,
      "url" : "http://build-20003.eu1.kolko.com:8080/job/ios_sdk/282/",
      "builtOn" : "macmini12",
      "changeSet" : {
        
      },
      "culprits" : [

这是第二个json URL的例子(来自上面):

{
  "actions" : [
    {
      "parameters" : [
        {
          "name" : "Version",
          "value" : "5.0.1"
        },
        {
          "name" : "IOS",
          "value" : true
        },
        {
          "name" : "CocoaPods",
          "value" : false
        },
        {
          "name" : "Unity",
          "value" : false
        },
        {
          "name" : "Publish",
          "value" : false
        }
      ]
    },
    {
      "causes" : [
        {
          "shortDescription" : "Started by user elior",
          "userId" : "elior",
          "userName" : "elior"
        }
      ]
    },
    {
      
    },
    {
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "buildNumber" : 282,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "4e3b7d0199aaa9b8d6cebcf8ccd6b2a5",
            "branch" : [
              {
                "SHA1" : "4e3b7d0199aaa9b8d6cebcf8ccd6b2a5",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "4e3b7d29ddaaa9b8b0cebcf8ccd6b2a5",
            "branch" : [
              {
                "SHA1" : "4e3b7d019929b0cbd6cebcf8ccd6b2a5",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "4e3b7d019929ddb8b0cbd6cebcf82a5",
        "branch" : [
          {
            "SHA1" : "4e3b7d019929ddaaa9ebcf8ccd6b2a5",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://deployment:username@bitbucket.org/kokol/kokol.sdk.ios.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "duration" : 32640,
  "estimatedDuration" : 33113,
  "executor" : null,
  "fullDisplayName" : "ios_sdk #282",
  "id" : "2016-06-20_09-32-23",
  "keepLog" : false,
  "number" : 282,
  "result" : "SUCCESS",
  "timestamp" : 1466415143000,
  "url" : "http://build-20003.eu1.kokol.com:8080/job/ios_sdk/282/",
  "builtOn" : "macmini12",
  "changeSet" : {
    "items" : [
6yt4nkrj

6yt4nkrj1#

我知道怎么做了!我还发现jenkins API可以根据我的需要创建1个json结构。在我创建了相关的json URL之后,我读了很多关于它的内容,并设法读取json URL并解析它。

<script src="http://code.jquery.com/jquery-1.12.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
        var USERNAME= 'elior';
        var PASSWORD = '3f800e'; // this isn't my real pass
        var store=''; 
        $.ajax
        ({
                  type: "GET",
                  url: "http://bui-203.eu1.kokol.com:8080/job/ios_sdk/api/json?pretty=true&tree=name,description,builds[actions[parameters[name,value]],number,url,timestamp,result]",
                  dataType: 'json',
                  async: false,
                  headers: {
                    "Authorization": "Basic " + btoa(USERNAME + ":" + PASSWORD)
                  },
                  data: '{ "comment" }',
                  success: function (data){
                        for (var i=0 ; i< data.builds.length-1; i++ )
                        {
                                var rowclass="gradeX";
                                if( i % 2 == 0 ) 
                                        rowclass="gradeX";
                                else
                                        rowclass="gradeC";
                                store+='<tr class='+rowclass+'>';
                                        store+='<td>';
                                                store+=data.builds[i].timestamp; //timestamp
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[i].actions[0].parameters[0].value; //Version
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[i].number; //buildNumber
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[i].actions[0].parameters[1].value; //IOS
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[i].actions[0].parameters[2].value; //Cocoapods
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[i].actions[0].parameters[3].value; //Unity
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[3].actions[0].parameters[4].value; //Publish
                                        store+='</td>';
                                        store+='<td>';
                                                store+=data.builds[i].result; //result
                                        store+='</td>';
                                store+='</tr>';
                        }
                }
        });
        document.getElementById('id01').innerHTML=store;
        });
</script>

相关问题