Работа массивом
Добрый день. Я записываю массив в тестовый фаил, и хочу получить обратно такой же массив, только уже из файла. Начальный массив выглядит так:
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, время: 16:29. |