skip to Main Content

I have a wordpress endpoint and I have some json data.
Unfortunately I dont know how to return this json data in the function. I tried json_decode but it doesn’t return anything. Then endpoint works. If I use json_encode it returns data, but also include linebreaks and stuff. The problem seems to be with the syntax as it is already a complete json what I have. How can I return something that is already in json syntax?

add_action('wp_ajax_nopriv_inboundCall', 'testFunction');
add_action('wp_ajax_inboundCall', 'testFunction');
 
function testFunction() {
    
    echo json_decode('{
        "testData": [
          {
            "_id": "1",
            "name": "testName1"
          },
          {
            "_id": "2",
            "name": "testName2"
          },
        ],
        "testState": {
          "1": [
            1,
            0
          "2": [
            1,
            0
          ]
         }
       }'); 

      die(); 
}

2

Answers


  1. Chosen as BEST ANSWER

    I saved the output of json_decode to a variable and then run json_encode on that variable. Now it seems to work.

    function inboundCall() {
        
        $json = json_decode('{
            "topics": [
              {
                "_id": "1",
                "name": "davisio",
                "crdate": "2022-01-17T12:40:03.430Z",
                "modified": "2022-01-17T12:40:03.430Z"
              },
              {
                "_id": "2",
                "name": "LoRaWAN",
                "crdate": "2022-01-17T12:40:33.848Z",
                "modified": "2022-01-17T12:40:33.848Z"
              },
              {
                "_id": "3",
                "name": "Kommunale Beziehungen",
                "crdate": "2022-01-19T15:17:10.094Z",
                "modified": "2022-01-19T15:17:10.094Z"
              },
              {
                "_id": "4",
                "name": "Test",
                "crdate": "2022-03-31T13:29:41.799Z",
                "modified": "2022-03-31T13:29:41.799Z"
              }
            ],
            "serviceState": {
              "1": [
                1,
                0,
                0,
                1,
                0,
                0,
                0,
                1
              ],
              "2": [
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                1
              ],
              "4": [
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                1
              ]
            }
          }'); 
          echo json_encode($json);
        die(); 
    }
    

  2. function testFunction() {
    return json_decode('{
        "testData": [
          {
            "_id": "1",
            "name": "testName1"
          },
          {
            "_id": "2",
            "name": "testName2"
          },
        ],
        "testState": {
          "1": [
            1,
            0
          "2": [
            1,
            0
          ]
         }
       }');  }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search