Tam Versiyonu Görüntüle: JSON for ASP

threedot
03.07.2008, 23:09
ASP içerisinde kompleks JSON dönüşümlerine ihtiyacım oldu. Bunun üzerine http://www.webdevbros.net/2007/04/26/generate-json-from-asp- datatypes/ adresindeki JSON sınıfını buldum fakat ihtiyaçlarıma cevap vermedi. En başta tam olarak unicode desteği yoktu ve ihtiyaçlarım doğrultusunda kullanabileceğim esnekliğe sahip değildi. Bende bunun üzerine kendim bir sınıf yazmaya başladım. Şu anda da geliştirmeye devam ediyorum. Proje http://www.json.org/ da "JSON for ASP" adıyla yayınlanmakta.

    * Tam unicode dil desteği (Türkçe, Rusça, Japonca, ...)
    * VBScript dilindeki veriler ile doğrudan etkileşim
    * Çok boyutlu dizi uyumu
    * İterasyon edilebilme
    * ASP'de doğrudan buffer a çıktı
    * SQL sorgusunu doğrudan JSON a dönüştürebilme

gibi özelliklerle yeterli bir hale geldi.

MIT lisansı kapsamında Open Source olarak;
http://code.google.com/p/aspjson/

adresinden projeme ulaşabilirsiniz.

[code]<!--#include file="JSON.asp"-->
<%
Dim o
Set o = jsObject()
o("isim") = "Tuğrul"
o("soyisim") = "Topuz"
o("dogum_tarihi") = #03/09/1988#
o("sansli_numaralari") = Array(6, 12, 21, 74)
o.Flush
%>
[/code]

çıktısı
[code]{
    "isim":"Tu\u011Frul",
    "soyisim":"Topuz",
    "dogum_tarihi":"09.03.1988",
    "sansli_numaralari":[6,12,21,74]
}[/code]

basit yapı dışında iç içe olan karmaşık yapılar da oluşturabiliyoruz.
[code]<!--#include file="JSON.asp"-->
<%
Dim o
Set o = jsObject()
Set o("fiziksel") = jsObject()
o("fiziksel")("boy") = 1.75
o("fiziksel")("agirlik") = 65
o("isim") = "Tuğrul"
o.Flush
%>
[/code]

çıktısı
[code]{
    "fiziksel":{
        "boy":1.75,
        "agirlik":65
    },
    "isim":"Tu\u011Frul"
}[/code]

VBScript içerisindeki çok boyutlu dizileri de dönüştürebiliyoruz.

[code]<!--#include file="JSON.asp"-->
<%
Dim s(1,1)
s(0,0) = 0
s(0,1) = 1

s(1,0) = 2
s(1,1) = 3

Dim o
Set o = jsObject()
o("cok_boyut") = s
o("isim") = "Tuğrul"
o.Flush
%>
[/code]

çıktısı

[code]{
    "cok_boyut":[[0,1],[2,3]],
    "isim":"Tu\u011Frul"
}[/code]

verileri nesne oluşturmadan da dönüştürebilirsiniz. Yani jsArray ve jsObject den oluşmuş nesneleri de artık VBScript'in veri türü gibi düşünebilirsiniz.
[code]<!--#include file="JSON.asp"-->
<%
Dim s(1,1)
s(0,0) = 0
s(0,1) = 1

s(1,0) = 2
s(1,1) = 3

Response.Write toJSON(s)
%>[/code]

çıktısı
[code][[0,1],[2,3]]
[/code]

jsArray sınıfı ile de JSON Array veri tutucusu oluşturabilirsiniz
[code]<!--#include file="JSON.asp"-->
<%
Dim a
Set a = jsArray()
a(Null) = 0
a(Null) = 1
a(Null) = 2
a(Null) = 3

a.Flush
%>[/code]

çıktısı
[code][0,1,2,3][/code]

iterasyon

[code]<!--#include file="JSON.asp"-->
<%
Dim a
Set a = jsArray()
a(Null) = "ali"
a(Null) = "veli"
a(Null) = 49
a(Null) = 50

For Each k In a.Collection
    Response.Write "tutamaç: " & k & vbCrLf & "değer: " & a(k) & vbCrLf & "---"
Next
%>[/code]

çıktısı
[code]tutamaç: 0
değer: ali
---
tutamaç: 1
değer: veli
---
tutamaç: 2
değer: 49
---
tutamaç: 3
değer: 50
---[/code]

[code]<!--#include file="JSON.asp"-->
<%
QueryToJSON(conn, "SELECT name, surname FROM members").Flush
%>[/code]

çıktısı

[code][
    {
        "name":"ali",
        "surname":"osman"
    },
    {
        "name":"mahmut",
        "surname":"\u00E7\u0131nar"
    }
][/code]

Az öncede bahsettiğim gibi jsObject ve jsArray sınıflarından türemiş nesneleri VBScript'in veri türü gibi düşünebilir. İstediğiniz gibi standart veri türleri ile harmanlayabilirsiniz.şreedot2008-07-03 23:10:45

tekbilersin
11.11.2011, 02:31
Usta bir sorum olucak şimdi asp den jsona dönüştüra biliyorsun ama ben jsondan asp ye cevirip dizilere atamadım bir türlü aslında yaptım ama şöyle yaptım misal geri dönen json
değeri şöyle [{},{}] bu parametreler arasında geliyor. bu şekilde ceviri yapamıyorum asp ye ama json u temizleyip sadece {} bu parametreleri bırakınca verileri çekebiliyorum. ama tabi bana diğer şekilde gelen veriyi cevirmem gerekiyor nasıl yapıcaz bunu ?