Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2018, 15:07
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Работа массивом
Добрый день. Я записываю массив в тестовый фаил, и хочу получить обратно такой же массив, только уже из файла. Начальный массив выглядит так:
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 ?
Что то вроде?:
end_arr = ['["1524830444500","334"]["1524830454487","334"]["1524830464486","334"]']
console.log(end_arr[0].split(' '));
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2018, 15:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Artur_Hopf,
https://learn.javascript.ru/json
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2018, 15:32
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

рони,
Написал так:
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
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2018, 15:33
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Artur_Hopf
Получившийся текстовый фаил допустим выглядит так, записанно все в одну строку без пробелов:

["1524830444500","334"]["1524830454487","334"]["1524830464486","334"]
А почему? И зачем?

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]);
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2018, 15:34
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

перед тем как записываете в файл сделайте.
JSON.sringify(ваш_массив)
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2018, 15:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Artur_Hopf
['["1524830444500","334"]["1524830454487","334"]["1524830464486","334"]']
Это не JSON.

JSON.stringify([[1524830444500, "334"],[1524830454487, "334"],[1524830464486, "334"]]) возвратит нужное.
Ответить с цитированием
  #7 (permalink)  
Старый 27.04.2018, 15:45
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

laimas,
j0hnik,
Dilettante_Pro,
принял все к сведению, как все получится, отпишусь
Ответить с цитированием
  #8 (permalink)  
Старый 27.04.2018, 16:37
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

laimas,
j0hnik,
Dilettante_Pro,
рони,
Не получается
Вот весь пусть что я делаю
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);  //вот как вот это преоброзовать в то что было?
        };
});

Последний раз редактировалось Artur_Hopf, 27.04.2018 в 16:40.
Ответить с цитированием
  #9 (permalink)  
Старый 27.04.2018, 16:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Artur_Hopf
var inputdata = [[]];
var inputdata = [];

var inp = inputdata[inputdata.length -1]; - чего это будет?

data: ({inp}), - зачем здесь скобки?

$inputdata = $this->input->post('inp'); - откуда это может появится на сервере?

Откройте отладчик браузера и посмотрите что будет отправляться на сервер.
Ответить с цитированием
  #10 (permalink)  
Старый 27.04.2018, 16:53
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от laimas
var inp = inputdata[inputdata.length -1]; - чего это будет?
var inputdata = [];
var data2 = [1, 2]; //данные 
inputdata.push(data2); //фигачим данные в пустой массив, там они копятся 
//далее отправляем все это в php
var inp = inputdata[inputdata.length -1]; 
alert(JSON.stringify(inp));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с двумерным массивом dllec Общие вопросы Javascript 2 24.08.2015 12:42
Работа с массивом. Где ошибка ? Cepreu Общие вопросы Javascript 2 07.03.2015 17:19
Работа с массивом. Где ошибка ? Cepreu Общие вопросы Javascript 4 07.03.2015 17:17
Работа с массивом Alexej Общие вопросы Javascript 12 20.02.2013 16:45
Работа с массивом strengerst Общие вопросы Javascript 37 04.02.2012 16:33