Forum Discussion

stew_ia's avatar
stew_ia
Frequent Visitor
6 years ago
Solved

JSON with empty array

I'm working with a 3rd party REST API that returns an empty Results array when all of the data has been consumed.  "Results":[]   

This seems like it should be easy enough but it has me stumped.  I'm returning the Results to a loop that tests for Results being null which doesn't work,  but I'm not sure how to test for an empty array?

 

 

    GetActivities = (Index, access_token) =>
        let 
            Skip = Text.From(Index * RecordsPerPage),
            RawData = Web.Contents(BaseUrl,
                [
                    Headers=[
                        Authorization="Bearer " & access_token
                    ],
                    RelativePath="/crm/activity?$skip=" & Skip
                ]
            ),
            Source = Json.Document(RawData),
            Result1 = Source[Result]
            //res = try Source[Result] otherwise null,
            //Result3 = try res otherwise null
        in  Result1,

    access_token = GetToken(),
    TestRun = List.Generate ( 
        ()=>
            [Results = try GetActivities(0, access_token) otherwise null, Page = 0],
            each [Results] <> null and [Page]<5,
            each [Results = try GetActivities([Page] +1, access_token) otherwise null, Page = [Page]+1],
            each [Results]
    )
in
    TestRun

 

 Any pointers for a newbie would be appreciated.  Thanks in advance.  

  • That did it JirkaZ,  prolem solved.  

    Results2 = if (Record.HasFields(Results1{0}, {"Id"})) then Results1 else null

4 Replies

  • JirkaZ's avatar
    JirkaZ
    Solution Specialist

    stew_ia Not sure from the top of my head but Json.Document typically returns a record, correct? So you could test the record with Record.HasFields perhaps?

    • stew_ia's avatar
      stew_ia
      Frequent Visitor

      That did it JirkaZ,  prolem solved.  

      Results2 = if (Record.HasFields(Results1{0}, {"Id"})) then Results1 else null

      • Icey's avatar
        Icey
        Community Support

        Hi stew_ia ,

         

        Glad to hear that. Please accept your reply as a solution so that people who may have the same question can get the solution directly.

         

         

        Best Regards,

        Icey

  • jggj's avatar
    jggj
    Frequent Visitor

    How can I integrate it into the code? I'm too new