A list of all Actions, Conditions and Expressions supported in this addon.

JSON Looping

  • Conditions

    Loop over {0} with query {1}. {2} nested in another json loop

    Json array loop: Over a slot using a query.

  • Expressions


    Json loop index: current loop index of a Json loop.


  • Actions

    Load Json: Cache Enable is {0}

    Load Json: All files into correct slots

    Load Json From String: Cache Enable is {2} from {1} into slot {0}

    Load Json From String: Load Json string into a slot

    Reset Json slot: {0} back to it's original value.

    Reset Json slot back to it's original value when it was first loaded.

    Clear Slot: {0}

    Clear Json slot.

    Create new slot: Query {1} and copy from {0} to {2}. {3} in json loop

    Create new slot by duplicating a Json sub object into a new slot.

    Set Json Value: Set {3} into {0} and {2}, using {1}. {4} in json loop

    Set Json Value: Set a value to a specific field in the Json object.

  • Conditions

    On Json loaded

    Triggered when: All Json files have been loaded.

  • Expressions


    Get json value: Using standard Json notation.


    Get length: Array within a Json object.

JSON Conversion

  • Expressions


    C3 array: Get formatted json string in array form.


    C3 dictionary: Get formatted json string in dictionary form.


1.2.1 Stable (17 KB)


  • License MIT License
  • Copyright Robert Greenberg. All rights reserved.


  • Download count 244 total downloads
  • Latest download count 27 downloads of latest version
  • Average download count 2 downloads per day average




  • Order by
Want to leave a comment? Login or Register an account!
  • hi, again.

    is it possible to load multiple json, without import files and will be import after build? if so, how can i get the specific name of that files to load it on start dynamically?

    • The JSON manager has an action to load a string also. So you could use the built in ajax to get the file at runtime and load the string into the json manager. But make sure to still use the file loaded trigger before using it. Then just use different slots for the different files

  • Hi, nice plugin

    I cannot import a json response without a Array ?

    All my responses i need to "var result = {index: obj};"

    but doing this when i import to Array all values are "object Object"

    • A json file doesn't have to contain an array. It can be as simple or as complex as you need. If you can show me a sample of what you are working with, I can recommend how to work with it.

      • hi there, i really need to store a value from json to an array, its works so fine on editor but i cant access it after build, can you help me?

        Load more comments (6 replies)
      • My ajax response is like this:

        [ { "number": 123456789, "name": "Aparador 350V" } ]

        [ { "number": 123456789, "name": "Aparador 350V" } ]

        [ { "number": 123456789, "name": "Aparador 350V" } ]

        [ { "number": 123456789, "name": "Aparador 350V" } ]

        If i load to Slot i cannot access the data because i dont have a query string to "?[0].number"

        After javascript i can access with "index[0].number"

        AND if i load to array with query index all data inside the array become "object Object"

  • Great job rhg - it's nice to have a fully featured JSON plugin for the C3 runtime!

    • [-] [+]
    • 1 points
    • (2 children)
    • it is my mistake , i found the mistake.

    • I will take a look at it. But looking at your example the first things that strikes me is getting a dictionary works by pointing at simple javascript object with properties, not an array. So in that case the query to use with the GetDictionaryFromJsonPath would be something like slot.friendlist[0]. I will look at this to make sure though


      Just tried it with your example and it works fine by loading a dictionary with the following:

      JsonManager.GetDictionaryFromJsonPath("world", "friendlist[0]", "No")

      You could also do something like:

      JsonManager.GetDictionaryFromJsonPath("world", "friendlist[" & str(JsonManager.GetJsonArrayLength("world", "friendlist", "No")-1) &"]", "No")

  • Could you add a condition that tests for when the loop has completed. I.e. its true *after* the last loop item has been processed.

    This would be ideal to trigger post-loop action, such as selecting an element in a listbox, that was filled with the the loop

    thank you,


    • You could just put a condition after the loop that will run as soon as the loop is done. I don't know if you really need an event for this.

      Also for commas in a string I would start1 with an empty string. Then when you try to append to it check if its empty. If its empty just add the string. If it's not empty add a comma first and then the string. Then you never have to worry about having too many commas

    • btw, sometimes its useful to also have a condition that tests true for when the last loop item processes, or even also the one before the last one. This helps customize construction tasks such a creation of json strings, where for last elements one does not add commas anymore.

  • It would be great if there could be additional dictionary like functionality, to construct a json, which can then be obtained via a toJson method.

    In my app, i need to update values in a google sheet. This means constructing an update json string as data for a ajax put call.

    now, the only way to do it is to build the string using concats

  • Hi,

    Was wondering if you got the link and were able to donwload it.

    thank you,


  • To bad, that JSON manager doesn't load from a variable -- such as after receiving JSON via an Ajax call response.

    • It loads the json file through ajax itself internally. The example project shows how that works. Since it handles the ajax call behind the scenes, I didn't think it would be necessary to load it from a string. I can certainly look at adding that functionality if you feel it's really needed and can't be met using the functions in the plugin to load itself with the data.

      • Hi, just to clarify -- after reading the documentation.

        I noticed one could load json via a URL -- but, my use case is different ... i am obtaining a json response string after an ajax call (to google sheets) -- so its dynamically generated after the call. I can the access it via ajax.lastData.

        It would be great if i could load ajax.lastData into the jason manager.

        Load more comments (1 replies)
      • Hi,

        Thank you for your reply.

        I was trying all morning to figure out how to access a json structure i received from google sheets (just posted a question in the forum).

        I wasn't able to figure it out so far.

        I think if you can support an ajax call via an ajax string and then auto-magically have the respond available that would be great.

        Alternatively, i think reading in json from a string would make the plugin more flexible ...

        thank you,


        Load more comments (12 replies)
  • thanks, pretty much needed :)