Klasyczne ASP JSON Revisited


Original: http://zend.lojcomm.com.br/entries/classic-asp-json-revisited/

Witam wszystkich! Obecnie pracuję na trzech projektów wykorzystujących AXE (ASP Xtreme Evolution) ramy i ze względu na ich dużą zależność od JSON Mam powrócił do tematu Classic ASP obsługę JSON. Dobra wiadomość jest to, że znalazłem Troy Forster JSON2.ASP naprawdę obiecujący sposób do pracy z nim. Pomimo prac niekompletne pod względem funkcjonalności, kiedyś naprawdę elegancki sposób odczytać JSON w fantazyjny sposób rodzimej patrząc. Plus, biblioteka została oparta na Douglas Crockford json2.js co oznacza, że ​​to silnik jest bardzo ścisły z normami.

Ponieważ filozofii Topór ogarnąć i wykorzystać najlepsze pomysły urodzonych na całym świecie, w rzeczywistym środowisku współpracy wszystkich języków, czułem się naprawdę ochotę przyjąć oryginalne dzieło autora JSON sam i zwiększa funkcjonalność ramowy AXE z tym małym kawałku złoto. Ale ja nie mogę wymienić, także nie było sprytne posunięcie z punktu widzenia zgodności, mój stary pełni funkcjonalnym klasa JSON.ASP z innymi, które ograniczają swobodę manipulowania obiekt Javascript by własnej woli.

I dlatego ja kodowane własną wersję JSON2.ASP który natychmiast stał się zintegrowanym elementem AXE. Zapewnia wszystkie funkcje z pracy Forster Troy, ale wykracza poza umożliwiając programistom poszerzyć obiekt z logicznych, liczby, ciągi, tablice (przy użyciu ASP safeArrays notacji), a nawet kolejnych obiektów. Plus I wdrożył metodę kluczy w Object.prototype który pozwala na wyliczenie kluczy obiektowych (ta zmiana jest w porządku i jest to również standard ECMAScript 5), co oznacza, że ​​nie ma znaczenia, w jakim języku programujesz (Ruby, Python , VBScript, itp.) można użyć dla każdej pętli w sam sposób, że jest to dostępne dla języka w ASP.

Oto kilka przykładów tego, jak z niego korzystać:
Odczyt danych z JSON
“><script language=”javascript” runat=”server” src=”/lib/axe/Parsers/json2.asp”> </ script>
<%

dim Info: Info set = JSON.parse (join (array (_
“{“, _
“” “Imię” “:” “Fabio” “”, _
“” “Nazwisko” “:” “Nagao” “”, _
“” “Żywy” “: true,”, _
“” “Wiek” “: 27,”, _
“” “Nick” “:” “nagaozen” “”, _
“” “Owoce” “[“, _
“” “Banan” “”, _
“” “T” “”, _
“” “Apple” “”, _
“” “Papaya” “”, _
“” “Ananas” “” _
“],”, _
“” “Kompleks” “: {” _
“” “Real” “: 1,”, _
“” “Wyimaginowany” “: 2”, _
“}”, _
“}” _
)))

Response.write (Info.firstname & vbNewLine) “odciski Fabio
Response.write (Info.alive & vbNewLine) “drukuje prawda
Response.write (Info.age & vbNewLine) “drukuje 27
Response.write (Info.fruits.get (0) & vbNewLine) “drukuje banana
Response.write (Info.fruits.get (1) & vbNewLine) “drukuje pomarańczowy
Response.write (Info.complex.real & vbNewLine) “drukuje 1
Response.write (Info.complex.imaginary & vbNewLine) “drukuje 2

“Można też wyliczyć właściwości obiektu …

dim key: do każdego klawisza w Info.keys ()
Response.write (klawisz & vbNewLine)
następny

‘Który drukuje:

“Imię
“Nazwisko
‘Żyje
“Wiek
“Nick
“Owoce
“Kompleks

ustawić info = nic

“>%>
Budowanie JSON
“><script language=”javascript” runat=”server” src=”/lib/axe/Parsers/json2.asp”> </ script>
<%

dim Info: Info set = JSON.parse (“{” “imię” “:” “Fabio” “,” “Nazwisko” “:” “Nagao” “}”)
Info.set “żyje”, true
Info.set “wiek”, 27
Info.set “nick”, “nagaozen”
Info.set “owoce”, array (“banan”, “niebieski”, “czerwony”, “papaya”, “ananas”)
Info.set “kompleks”, JSON.parse (“{” “real” “: 1,” “wyimaginowany” “: 1}”)

Response.write (JSON.stringify (Info, null, 2) i vbNewLine) “drukuje tekst poniżej:
‘{
“” Imię “:” Fabio “,
‘”Nazwisko”: “Nagao”,
“” Żywy “: true,
“” Wiek “: 27,
“” Nick “:” nagaozen “,
“,” Owoce “: [
“” Banan “,
“” Pomarańczowy “,
“” Apple “,
“” Papaya “,
“” Ananas ”
‘],
“” Kompleks “: {
“” Real “: 1,
“” Wyimaginowany “: 1
‘}
‘}

ustawić info = nic

“>%>

 

Pobierz & Źródło

Pobierz / źródło JSON2.ASP.
Zobacz testy: http://labs.evolved.com.br/unittests/json2.unit.test.asp
// ]]>