Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.05.2012, 20:28
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 1  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
По умолчанию JSON сохранение результатов игры

В БД хранятся результаты в формате JSON. Для этого JSON преобразуется в строку:
Код AS3:
var obj:Object = new Object();
obj.level = data.level;
obj.value = data.value;
var jsonString:String = JSON.stringify(obj);
Потом строка сохраняется в базе, но не в отдельной записи, а все в одну строку. То есть, если будет ново сохранение, то нужно к имеющейся строке JSON добавить новые данные. Пытаюсь просто их соединить как
Код AS3:
jsonStringOLD + "," + jsonString
Но полученная строка получается не валидная.

Подскажите как правильно это сделать?

Добавлено через 2 минуты
Потом мне нужно будет распарсить сохраненную строку примерно такого формата в массив и потом каждый элемент массива распарсить в другой массив.
Код AS3:
{"level":"3","value":"212"}, {"level":"4","value":"767"},{"level":"5","value":"3453"}
__________________
In Code We Trust


Последний раз редактировалось Astraport; 06.05.2012 в 20:31.
Старый 07.05.2012, 01:56
Владимир Буквин вне форума Посмотреть профиль Отправить личное сообщение для Владимир Буквин Найти все сообщения от Владимир Буквин
  № 2  
Ответить с цитированием
Владимир Буквин
 
Аватар для Владимир Буквин

Регистрация: Aug 2011
Сообщений: 103
JSON формат это тот же объект, но в виде строки
Код AS3:
{"level":"3","value":"212"}, {"level":"4","value":"767"},{"level":"5","value":"3453"}
так будет ошибка, объект должен содержаться внутри {}
должно быть так

Код AS3:
{{"level":"3","value":"212"}, {"level":"4","value":"767"},{"level":"5","value":"3453"}}
для этого надо сделать так
Код AS3:
newJSONString = jsonStringOLD.substr(0, jsonStringOLD.length - 1) + "," + jsonString + "}"
когда сохраняем в базу первую строку делаем это не так
Код AS3:
{"level":"3","value":"212"}
а вот так
Код AS3:
{{"level":"3","value":"212"}}
затем к ней будут добавляться другие JSON строки посредством удаления последней скобки, добавления JSON строки и добавления в конец закрывающей скобки, чтоб не было синтаксических ошибок

Старый 07.05.2012, 10:02
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 3  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
так будет ошибка, объект должен содержаться внутри {}
Так тоже делал, все равно не валидный JSON.
В общем решил немного кривым способом, что строку парсю в Array, а потом каждый элемент массива в JSON. Обратно сохраняю в БД наоборот.
__________________
In Code We Trust

Старый 07.05.2012, 11:12
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 4  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
Код AS3:
{
   "data": [
     {"level": 0, "value": 50},
     {"level": 2, "value": 150},
     {"level": 3, "value": 250}
   ]
}
__________________
Блог, Twitter
Брюзга.

Старый 07.05.2012, 12:53
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 5  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
mayakwd, да примерно так я и сделал.
__________________
In Code We Trust

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.