2013-04-25 2 views
0

У меня есть массив JSON, созданный с использованием Javascript.JSON to php accessing

Я строю его перед тем, как поместить его в поле ввода и отправить его с помощью HTML-формы.

Это мой выход после декодирования:

var_dump (json_decode ($ _ POST [ 'JSON']), правда); выходы:

[{"Mid": "1", "cat": "6", "room": "21", "rate": "EURP", "adchexb": "2,2,1"}, {"Mid": "2", "cat": "3", "room": "12", "rate": "EURP", "adchexb": "2,1,1"}] 

Тогда каждый раз, когда я пытаюсь получить доступ к какой-либо собственности, я получаю сообщение об ошибке. Я пробовал:

$jsonObj->Mid //gives "Trying to get property of non-object in..." 

$jsonObj[0]->Mis //error again. 

В основном нужно извлечь каждый объект в for цикле. Пожалуйста, помогите мне выяснить, как получить доступ или получить все свойства объекта в циклах.

Благодаря

+0

Вторая попытка была в порядке, кроме опечатка. См. Также http://array.include-once.org/ для обхода JSON/массив. – mario

ответ

0

Вам нужно декодировать строку JSON в объект PHP

$jsonObj = json_decode($jsonObj)

0

json_decode() даст вам массив из двух объектов с этого входа JSon:

$json = '[{"Mid": "1", "cat": "6", "room": "21", "rate": "EURP", "adchexb": "2,2,1"}, {"Mid": "2", "cat": "3", "room": "12", "rate": "EURP", "adchexb": "2,1,1"}]'; 
$result = json_decode($json); 
var_dump($result); 

Доступ к ним с использованием Оператор доступа к массиву []:

echo $result[0]->Mid; 

или

echo $jsonObj[1]->Mid; 
+0

Я пробовал, как вы мне сказали, но это то, что я получаю после $ jsonObj [0] -> Mid; ===> Примечание: попытка получить свойство не-объекта в – user2317749

+0

У меня есть строка (1) "1" или "строка (1)" 2 "' .. Вы уверены, что выполнили пример так же просто, как я Выложили его? – hek2mgl

+0

Это результат var_dump: string (152) "[{" Mid ":" 1 "," cat ":" 6 "," room ":" 21 "," rate ":" EURP "," adchexb " : «2,2,1»}, {«Середина»: «2», «кошка»: «3», «комната»: «12», «ставка»: «EURP», «adchexb»: «2, 1,1 "}]" – user2317749

0

Если вы хотели бы использовать дополнительный аргумент с функцией json_encode вы можете добавить второй аргумент. Например:

$myArray = json_decode($jsonObj,true); 

Теперь $myArray будет ассоциативный массив, доступ к которому, как это:

$myArray[0]['Mid']; 
+0

$ jsonObj уже декодирован после этого, я получаю это – user2317749

+0

Я пробовал, что это ошибка, которую я получаю: Неустранимая ошибка: нельзя использовать смещение строки в виде массива в ... – user2317749

+0

'var_dump()' 'переменная' myArray' и посмотреть, как она выглядит: –