2016-07-18 7 views
2

У меня есть следующий JSON. Я новичок в JSON и Laravel. Я хочу сохранить каждый массив объектов, таких как LineNum, StationName и StopNum в БД. Любая помощь приветствуется. Я смог разобрать, но не смог сохранить их в БД.Сохранение объектов JSON в MySQL DB в Laravel

foreach ($jsonIterator as $key => $val) { 
    if(is_array($val)) { 
     echo "$key:\n <br />" ; 

     $trainDetail->Route = "$key"; 

    } else { 
     echo "$key => $val\n <br />"; 
     $trainDetail->StopNumber = "$key"; 
     $trainDetail->StationName = "$val"; 
    } 
} 

Маршрут не хранить LineNum, то StopNumb не сохраняет правильное значение.

Вот JSON, над которым я работаю.

{"LineNum1":[{"StopNumber":"MN218","StationName":"ABCD"}],"LineNum2":[{"StopNumber":"MN244","StationName":"XYZ"}],"LineNum3":[{"StopNumber":"MN220","StationName":"DEFCG"},{"StopNumber":"MN318","StationName":"QWERTY"}]} 

Любая помощь очень ценится.

С уважением,

+1

Сохранение объекта JSON - непростая задача в Laravel. почему бы вам не изменить свой запрос только для получения массива с помощью '-> pluck ('field');' – Sachith

+1

вы можете мне помочь с примером.? Спасибо. – PurnaSatyaP

ответ

0

Нормальный запрос будет возвращать что-то вроде этого,

[{"ID":"1","Code":"ECX4236"},{"ID":"10","Code":"LWJ3154"},{"ID":"11","Code":"TTX4201"},{"ID":"12","Code":"TTY2545"},{"ID":"13","Code":"RRA2553"}] 

Если используется формат запроса Laravel в.

$items = DB::table('Items')->where('isActive','=',1)->pluck('Code'); 

это возвращает массив.

["ECX4236","LWJ3154","TTX4201","TTY2545","RRA2553"] 

Вы можете легко ввести это в базу данных, используя Laravel. Вот что я делаю.

+1

Думаю, вы поняли это неправильно. Я обращаюсь к URL-адресу, который возвращает ответ JSON. Я хочу проанализировать ответ и сохранить данные в полях БД. , например. в моем оригинальном JSON '{«LineNum1»: [{«StopNumber»: «MN218», «StationName»: «ABCD»}], «LineNum2»: [{«StopNumber»: «MN244», «StationName»: XYZ "}]," LineNum3 ": [{" StopNumber ":" MN220 "," StationName ":" DEFCG "}, {" StopNumber ":" MN318 "," StationName ":" QWERTY "}]} ' Я хочу захватить имена LineNum и StopNumber и StationName в их соответствующие поля БД. Думаю, ваше решение не сработает для меня. – PurnaSatyaP