Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация
 
JoQeR
Форумчанин
5 / 5 / 0
Регистрация: 16.02.2012
Сообщений: 57
28.08.2012, 15:21     Загрузить данные из JSON в виде txt файла в массив   #1
Прошу помочь со следующим.
У меня есть текстовый файл с расширением .txt как я понял в jQuery можно из него данные загрузить с помощью JSON.

Тестовый файл:
Код JavaScript
1
2
3
4
5
6
7
{FumArray:[
"Петров",
"Сидоров",
"Кравчук",
"Курилов",
"Ломов"
]}
Вопрос: как получить доступ к элементам в этом текстовом файле, чтобы например выводить текст на веб-страницу с помощью цикла?

HTML страница лежит вместе с js файлом и текстовым файлом.
Пытаюсь получить доступ к элементам текстового файла подобным образом (в данном случае хотя бы к первому), но ничего не получается:
Код JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function ListFum(){
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: 'MyQuotes.txt',
        success: function(Fum){
            //var Fum = [];
            //var i = 0;
            $('.main_block_text').html(Fum.FumArray[1]);
        }
    });
}
Уже кучу форумов перелазил, скорее всего не правильно что то делаю, недавно начал изучать jQuery. Скажите что неправильно делаю и здорово было бы пример наглядный как это сделать, или хотя бы алгоритм. Спасибо!
AdAgent
Объявления
28.08.2012, 15:21    Загрузить данные из JSON в виде txt файла в массив
Vovan-VE
Форумчанин
12953 / 6339 / 143
Регистрация: 10.01.2008
Сообщений: 15,063
28.08.2012, 16:03     Загрузить данные из JSON в виде txt файла в массив   #2
Цитата Сообщение от JoQeR Посмотреть сообщение
Код JavaScript
1
{FumArray:[
скорее всего не правильно что то делаю
Ага, неправильно. В правильном JSON имена свойств объекта могут быть только строками:
Код JavaScript
1
{"FumArray":[
Добавлено через 35 секунд
Заглядните в консоль ошибок - там Вам скажут, что данное нечно не является валидным JSON.
JoQeR
Форумчанин
5 / 5 / 0
Регистрация: 16.02.2012
Сообщений: 57
28.08.2012, 16:09  [ТС]     Загрузить данные из JSON в виде txt файла в массив   #3
В смысле, что вот такого вида?

Код JavaScript
1
2
3
4
5
6
7
{
"Петров",
"Сидоров",
"Кравчук",
"Курилов",
"Ломов"
}
но так тоже не получается получить доступ к элементам как к массиву.

Дело в том, чтое если сделать таким образом:

Код JavaScript
1
2
3
4
5
6
7
{
"Fum1":"Петров",
"Fum2":"Сидоров",
"Fum3":"Кравчук",
"Fum4":"Курилов",
"Fum5":"Ломов"
}
А потом обратиться таким образом Fum.Fum1, то всё будет работать.

Как же мне сделать поочередный вывод каждого элемента в какой-нибудь элемент веб страницы, т.е. задать некий абстрактный индекс как в массивах? Например при каждом нажатии кнопки. Такое похоже без массива не сотворишь.
Vovan-VE
Форумчанин
12953 / 6339 / 143
Регистрация: 10.01.2008
Сообщений: 15,063
28.08.2012, 16:11     Загрузить данные из JSON в виде txt файла в массив   #4
Цитата Сообщение от JoQeR Посмотреть сообщение
В смысле, что вот такого вида?
Нет. Я же Вам написал, какую строку на что исправить.

Добавлено через 37 секунд
http://www.json.org/json-ru.html
JoQeR
Форумчанин
5 / 5 / 0
Регистрация: 16.02.2012
Сообщений: 57
28.08.2012, 16:18  [ТС]     Загрузить данные из JSON в виде txt файла в массив   #5
Пока писал, Вы ответили) Спасибо большое, всё заработало.

Еще я не очень понял, то что я делаю - вывожу из текстого файла на html страницу с помощью jQuery это вообще правильно? Или надо было бы задействовать PHP для подобного извлечения информации?
AdAgent
Объявления
28.08.2012, 16:18    Загрузить данные из JSON в виде txt файла в массив
Vovan-VE
Форумчанин
12953 / 6339 / 143
Регистрация: 10.01.2008
Сообщений: 15,063
28.08.2012, 16:21     Загрузить данные из JSON в виде txt файла в массив   #6
Цитата Сообщение от JoQeR Посмотреть сообщение
Или надо было бы задействовать PHP для подобного извлечения информации?
Со стороны клиента Вы просто запрашиваете у сервера инфу, и он Вам её отдаёт. Как клиенту, Вам должно быть совершенно всё равно, откуда сервер достаёт эту инфу - из файла, из скрипта или из-под шкафа.
Цитата Сообщение от JoQeR Посмотреть сообщение
Код JavaScript
1
$('.main_block_text').html(Fum.FumArray[1]);
вывожу из текстого файла на html страницу
Тогда бы уж .text() вместо .html():
Код JavaScript
1
$('.main_block_text').text(Fum.FumArray[1]);
JoQeR
Форумчанин
5 / 5 / 0
Регистрация: 16.02.2012
Сообщений: 57
28.08.2012, 16:23  [ТС]     Загрузить данные из JSON в виде txt файла в массив   #7
Спасибо, теперь понял)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2012, 15:59    Загрузить данные из JSON в виде txt файла в массив

Еще ссылки по теме:

jQuery Как вернуть json данные из php

jQuery Передать массив в формате JSON из AJAX в PHP и обратно

jQuery Получение содержимого json файла

jQuery Как получить массив json в javascript

JoQeR
Форумчанин
5 / 5 / 0
Регистрация: 16.02.2012
Сообщений: 57
11.09.2012, 15:59  [ТС]     Загрузить данные из JSON в виде txt файла в массив   #8
Теперь возникли проблеммы с записью в JSON в сам файл, а не чтение. Не знал в какую тему написать в jQuery или PHP.

Как в таком же формате продолжить дозаписывать данные в массив JSON в txt файл? Я думаю, что извлекать сначала массив Array[] полностью будет неправильно, т.к. это займет очень много времени и ресурсов, если например записей будет не 5, а 5000 или еще больше.

Вопрос: каким способом можно дописать в массив Array[] в поля text и author данные? Чтобы просто дописать в конец массива, как в файл. Или же как дописать просто в текст файл в формате подобном JSON? И последний вопрос, как это реализовать с помощью AJAX, хотя бы примерный алгоритм? За раннее спасибо!

Пробовал дописать просто в файл в формате подобном JSON, но сразу возникла проблемма с отображением русских букв:

Код PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//Получаем переменные при попытке опубликовать цитату
$text_JSON = $_POST["text"];
$author_JSON = $_POST["author"];
//$tema_JSON = $_POST["tema"];
//$email_JSON = $_POST["email"];
 
 
$list_text = array("author" => $author_JSON , "text" => $text_JSON);
$list_text_JSON = json_encode($list_text);
 
file_put_contents("My.txt", "Автор $author_JSON   "."   Текст $text_JSON \n", FILE_APPEND);
 
echo "Ваш отзыв будет опубликован сразу после проверки. 
     $list_text_JSON
     </br> Спасибо за Ваше время!"
 
?>
В результате $list_text_JSON выводится следующее:

Ваш отзыв будет опубликован сразу после проверки. {"author":"\u0410\u0432\u0442\u043e\u0440 \u043e\u0442\u0437\u044b\u0432\u0430!","text":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0437\u044b\u0432!"}
Спасибо за Ваше время!"
Yandex
Объявления
11.09.2012, 15:59    Загрузить данные из JSON в виде txt файла в массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему
Опции темы

Текущее время: 17:31. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.