JSON (JavaScript Nesne Gösterimi) insan tarafından okunabilir, basit ve küçük boyutlu olması nedeniyle REST API'leri için fiili serileştirme formatı haline geldi.
JavaScript nesnelerini tanımlamak için kullanılan aynı gösterimi kullanır ve doğal olarak, bir JSON dizesi ile JavaScript nesneleri arasında dönüştürme yapmak son derece basittir.
Aşağıdaki JSON dizesiyle çalışacağız:
const jsonString = '{"author" : "Plato", "name" : "Republic", "releaseYear" : "375BC"}';
JSON Dizesini JavaScript Nesnesine Dönüştür
The JSON
modül iki yöntem sunar – stringify()
bir JavaScript nesnesini bir JSON Dizesine dönüştüren ve parse()
bir JSON dizesini ayrıştıran ve bir JavaScript nesnesi döndüren .
Dilin içine yerleştirilmiştir, bu nedenle herhangi bir bağımlılık yüklemeye veya içe aktarmaya gerek yoktur:
const book = JSON.parse(jsonString);
console.log('Type: ', typeof book);
console.log('Contents: ', book)
Bunun sonucu:
Type: object
Contents: { author:"Plato", name:"Republic", releaseYear:"375BC"
}
Baştan çıkarılabilirsin eval()
bir nesneye bir dize, ancak pratikten bıkmayın:
const book = eval("(" + jsonString + ")")
console.log('Type: ', typeof book);
console.log('Contents: ', book)
Bu gayet iyi çalışıyor:
Type: object
Contents: { author:"Plato", name:"Republic", releaseYear:"375BC"
}
Bununla birlikte, bu yöntem aynı zamanda kod enjeksiyonuna da duyarlıdır. eval()
çalıştırılabilmesi koşuluyla, girdiğiniz herhangi bir keyfi metni değerlendirecek ve yürütecektir. Eğer bizim jsonString
şu şekilde değiştirildi:
const jsonString = 'console.log("Malicious code")';
O zaman sadece değerlendirmek şu şekilde sonuçlanır:
const book = eval("(" + jsonString + ")")
JavaScript'in, büyük ölçüde müşterinin makinesinde çalıştığı, tarayıcıda istedikleri herhangi bir kodu değerlendirip çalıştırabilecekleri bir gerçektir. Bununla birlikte, son yıllarda büyük bir paradigma değişikliği meydana geldi ve JavaScript giderek daha fazla kullanılıyor. sunucu tarafı ilave olarak. Code Injection güvenliği nihayetinde sunucu tarafında düşse de, bunu ön uçta gerçekten engelleyemeyeceğiniz için – JavaScript'in sunucu tarafında da çalışıyor olma olasılığı vardır.
JSON Dizesini JavaScript Dizisine Dönüştür
En iyi uygulamalar, endüstri tarafından kabul edilen standartlar ve dahil edilen hile sayfası ile Git'i öğrenmek için uygulamalı, pratik kılavuzumuza göz atın. Googling Git komutlarını durdurun ve aslında öğrenmek o!
JSON'u herhangi bir rastgele nesneye ayrıştırabilmenize rağmen – verileri dönüştüreceğiniz ortak bir veri yapısı dizilerdir. JSON dizileri köşeli parantez içinde bulunur ve dizilerin öğeleri virgülle ayrılır:
[element1, element2, element3]
Bir öğe, bağımsız bir öğe, başka bir JSON nesnesi veya sırayla bu türlerden herhangi birini içerebilen başka bir dizi olabilir. İki diziye bir göz atalım – birkaç elemanlı basit bir dizi ve birkaç JSON nesnesi içeren dizi:
const simpleArrayJson = '["Java", "Python", "JavaScript"]';
const objectArrayJson = '[{"name": "Java", "description": "Java is a class-based, object-oriented programming language."},{"name": "Python", "description": "Python is an interpreted, high-level and general-purpose programming language."}, {"name": "JS", "description": "JS is a programming language that conforms to the ECMAScript specification."}]'; const simpleArray = JSON.parse(simpleArrayJson);
const objectArray = JSON.parse(objectArrayJson); console.log(simpleArray);
console.log(objectArray);
Bunun sonucu:
[ "Java", "Python", "JavaScript"
] [ { name:"Java", description:"Java is a class-based, object-oriented programming language." }, { name:"Python", description:"Python is an interpreted, high-level and general-purpose programming language." }, { name:"JS", description:"JS is a programming language that conforms to the ECMAScript specification." }
]
Sonuç
Bu kısa eğitimde, bir JSON dizesinin bir JavaScript nesnesine nasıl dönüştürüleceğine bir göz attık ve kodunuzda güvenlik açıkları oluşturabilecek kötü bir uygulamaya dikkat çektik.
Son Güncelleme: Ocak 20th, 2022
Bunları da sevebilirsiniz…
Gelen kutunuza öğreticiler, kılavuzlar ve geliştirme işleri alın.
Yaşam Bilimleri (Biyoinformatik, İlaç Keşfi, Genomik), Sinirbilim (Hesaplamalı Sinirbilim), robotik ve BCI'lerde Hesaplama ve Derin Öğrenme uygulamalarına derin bir hayranlık duyan Girişimci, Yazılım ve Makine Öğrenimi Mühendisi.
Erişilebilir eğitim ve akıl, bilim, hümanizm ve ilerlemenin teşviki için büyük tutku.
- Her gün bir kodlama problemini çözerek becerilerinizi geliştirin
- Çözümleri ertesi sabah e-posta yoluyla alın
- üzerinde pratik yap gerçek sorunlar en iyi şirketler tarafından sorulur, örneğin:
© 2013-2022 Yığın Kötüye Kullanımı. Her hakkı saklıdır.
Kaynak: https://stackabuse.com/how-to-convert-json-to-javascript-object/