user2338456
user2338456

Reputation: 520

Illegal string offset while processing json decode array

I am getting following output when i use json_decode for api response

Array
(
    [Description] => {
  "CustomerData": [
    {

      "CustomerId": "XXXXX290",
      "MemExpiryDate": "2301",      
      "MobileNo": "XXXXXXX833",      

    },
    {

      "CustomerId": "XXXXX291",
      "MemExpiryDate": "2109",     
      "MobileNo": "XXXXXXX587", 


    }
  ]
}
)

When i am trying to get CustomerId value with

echo $resp['Description']['CustomerData'][0][CustomerId]

i am getting error

   Warning: Illegal string offset 'CustomerData'

can any one explain me how to get value of CustomerId and what am i doing wrong ?

Original response before using json_decode

{"Description":"{\r\n \"CustomerData\": [\r\n {\r\n \"CustomerId\": \"XXXXX290\",\r\n \"MemExpiryDate\": \"2301\",\r\n \"MobileNo\": \"XXXXXXX833\"},\r\n {\r\n \"CustomerId\": \"XXXXX291\",\r\n \"MemExpiryDate\": \"2109\",\r\n \"MobileNo\": \"XXXXXXX587\" }\r\n ]\r\n}"}

Upvotes: 0

Views: 227

Answers (1)

Nigel Ren
Nigel Ren

Reputation: 57131

The Description element of $resp is also a JSON string. You need to decode this to be able to access the data you are after...

$description = json_decode($resp['Description'], true);

echo $description['CustomerData'][0]['CustomerId'];

Upvotes: 1

Related Questions