Как разобрать даты JSON с помощью ActionScript? - PullRequest
1 голос
/ 11 мая 2011

У меня есть даты в JSON, которые генерируются из страниц ASP.NET с использованием библиотеки JSON.NET.Эти даты выглядят так:

"LastModifiedDate": "\/Date(1301412877000-0400)\/"

Как мне их обработать с помощью ActionScript из Flex 3 Professional?Я хотел бы иметь это в собственном формате данных.

ПРИМЕЧАНИЕ. Здесь я не спрашиваю, как мне проанализировать фид JSON с as3corelib.Я JSON десериализовал с этой библиотекой, но даты не декодируются.Вот почему мне нужно знать, как декодировать этот формат даты.

Ответы [ 3 ]

2 голосов
/ 11 мая 2011

Вы захотите использовать реализацию JSON as3corelib для декодирования вашей строки в Objects.

1 голос
/ 18 апреля 2012
    /**
     * Converts 'Unix tick' format JSON Date to AS3 Date instances.
     * Example json input: "{\"BarDate\":\"\/Date(1334672700000)\/\" }"
     * Example json input: "{\"BarDate\":\"\/Date(1334672700000+0000)\/\" }"
     *
     * @param json date from JSON 
     * @return Date if conversion possible and worked else null. 
     */
    public static function parseJSONUnixTickDateToDate(json:String):Date
    {
        var date:Date = null;
        if (json)
        {
            json = json.substring(json.indexOf("(") + 1, json.indexOf(")"));
            var arr:Array = json.split("+");
            date = new Date(Number(arr[0]));
        }
        return date;
    }
1 голос
/ 04 октября 2011

В ASP я использую эту функцию для получения даты Json

 public static double JsonTime(DateTime dt)
    {//Convert datetime to a Json Datetime
        DateTime d1 = new DateTime(1970, 1, 1);
        DateTime d2 = dt.ToUniversalTime();
        TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
        return Math.Round( ts.TotalMilliseconds,0);
    } 

и затем в JavaScript я использую:

if (data.indexOf("\/Date(")==7)
       return  new Date(+data.replace(/\D/g, ''));

для преобразования обратно в дату, если это поможет

Вам также понравится одиночные и двойные кавычки, но я не могу найти декодер, который работает на стороне сервера со строками Json в Net Framework 3!

если вы используете String = "\ u0027" в своем коде, тогда строка уже преобразована, и в конце я написал функцию, которая выполняет работу, используя цикл.

string Padding = "000";
                for (int f = 1; f <= 256; f++)
                {
                    string Hex = "\\u" + Padding.Substring(0, 4 - f.ToString().Length) + f;
                    string Dec = "&#" + Int32.Parse(f.ToString(), NumberStyles.HexNumber) + ";";
                    HTML = HTML.Replace(Hex, Dec);
                }
                HTML = System.Web.HttpUtility.HtmlDecode(HTML);

Плохо, я знаю, но если у вас есть лучший ответ, пожалуйста, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...