Работа массивом
Добрый день. Я записываю массив в тестовый фаил, и хочу получить обратно такой же массив, только уже из файла. Начальный массив выглядит так:
start_arr = [[1524830444500, "334"],[1524830454487, "334"],[1524830464486, "334"]]; console.log(start_arr); Получившийся текстовый фаил допустим выглядит так, записанно все в одну строку без пробелов: ["1524830444500","334"]["1524830454487","334"]["1524830464486","334"] Преобразую его в массив, получаю вот это: end_arr = ['["1524830444500","334"]["1524830454487","334"]["1524830464486","334"]'] console.log(end_arr ); Как мне привести end_arr к виду start_arr ?:blink: Что то вроде?: end_arr = ['["1524830444500","334"]["1524830454487","334"]["1524830464486","334"]'] console.log(end_arr[0].split(' ')); |
Artur_Hopf,
https://learn.javascript.ru/json |
рони,
Написал так: end_arr = ['["1524830444500","334"]["1524830454487","334"]["1524830464486","334"]']; end_arr = JSON.parse(end_arr); console.log(end_arr ); Пишет ошибку: Uncaught SyntaxError: Unexpected token [ in JSON at position:-? |
Цитата:
var start_arr = [[1524830444500, "334"],[1524830454487, "335"],[1524830464486, "336"]], str_arr = JSON.stringify(start_arr); alert(str_arr); var end_arr = JSON.parse(str_arr); alert(end_arr[1][1]); |
перед тем как записываете в файл сделайте.
JSON.sringify(ваш_массив) |
Цитата:
JSON.stringify([[1524830444500, "334"],[1524830454487, "334"],[1524830464486, "334"]]) возвратит нужное. |
laimas,
j0hnik, Dilettante_Pro, :write: принял все к сведению, как все получится, отпишусь |
laimas,
j0hnik, Dilettante_Pro, рони, Не получается :cray: Вот весь пусть что я делаю 1. Пишутся данные в массив: // все под setInterval var inputdata = [[]]; var data2 = [d1, d2]; //данные inputdata.push(data2); //фигачим данные в пустой массив, там они копятся //далее отправляем все это в php var inp = inputdata[inputdata.length -1]; // отравляем последнее значение, чтобы их можно было получить если обновить страницу $.ajax({ type: 'ajax', method: 'post', url: ' url', data: ({inp}), dataType: 'json', success: function(data){ console.log(data); }; }); Далее в php: public function put_inputdata(){ $inputdata = $this->input->post('inp'); $data = json_encode($inputdata); file_put_contents(ROUT_LOG, $data, FILE_APPEND); //ROUT_LOG путь к файлу $get_data = file_get_contents(ROUT_LOG); //читаем этот же фаил // $get_inputdata = json_decode($get_data, TRUE); // этот пункт что то не работает если в файле больше 1го значения [] return $get_data; //поэтому просто получаю содержимое файла } Привет javascript: //все тот же ajax запрос под setInterval $.ajax({ type: 'ajax', method: 'post', url: ' url', data: ({inp}), dataType: 'json', success: function(data){ console.log(data); //вот как вот это преоброзовать в то что было? }; }); |
Цитата:
var inp = inputdata[inputdata.length -1]; - чего это будет? data: ({inp}), - зачем здесь скобки? $inputdata = $this->input->post('inp'); - откуда это может появится на сервере? Откройте отладчик браузера и посмотрите что будет отправляться на сервер. |
Цитата:
var inputdata = []; var data2 = [1, 2]; //данные inputdata.push(data2); //фигачим данные в пустой массив, там они копятся //далее отправляем все это в php var inp = inputdata[inputdata.length -1]; alert(JSON.stringify(inp)); |
Часовой пояс GMT +3, время: 18:58. |