Yanıtlar:
Mevcut tüm tarayıcıların yerleşik JSON desteği vardır. IE6 / 7 gibi tarih öncesi tarayıcılarla uğraşmadığınız sürece bunu kolayca yapabilirsiniz:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
JSON.stringify(j);
var formattedJSON = JSON.stringify(j, null, 2);
İle json2.js veya çoğu modern tarayıcıda yerli JSON.stringify()
bulundu .
JSON.stringify(value, replacer, space) value any JavaScript value, usually an object or array. replacer an optional parameter that determines how object values are stringified for objects. It can be a function or an array of strings. space an optional parameter that specifies the indentation of nested structures. If it is omitted, the text will be packed without extra whitespace. If it is a number, it will specify the number of spaces to indent at each level. If it is a string (such as '\t' or ' '), it contains the characters used to indent at each level. This method produces a JSON text from a JavaScript value.
replacer
olduğunu hala kullanmak istiyorsanız eğer öyleyse, isteğe bağlı space
sen koymak arg null
için replacer
. Bu işlevi güzel baskı için kullanmakla ilgileniyorsanız, bu yanıtı da yararlı buldum: stackoverflow.com/a/7220510/857209
Thomas Frank tarafından güncellenmiş / daha iyi bir şekilde göz atın:
Güncelleme 17 Mayıs 2008: toObject yöntemine küçük dezenfektan eklendi. Artık toObject (), içinde herhangi bir kötü amaçlı kod bulursa dizeyi değerlendirmez (). Daha da fazla güvenlik için: includeFunctions bayrağını true değerine ayarlamayın.
JSON konseptinin babası Douglas Crockford, JavaScript için ilk dizgilerden birini yazdı. Daha sonra Trim Path'dan Steve Yen, bir süredir kullandığım güzel bir geliştirilmiş versiyon yazdı. Steve'in versiyonundaki değişikliklerim seninle paylaşmak istiyorum. Temelde onlar stringifier yapmak benim dileği kaynaklandı:
- döngüsel referansları işleme ve geri yükleme
- işlevler / yöntemler için JavaScript kodunu ekleyin (isteğe bağlı olarak)
- gerekirse nesne üyelerini Object.prototype'den hariç tutun.
JSON nesnesini String'e dönüştürmek için JSON.stringify () yöntemini kullanabilirsiniz.
var j={"name":"binchen"};
JSON.stringify(j)
Ters işlem için JSON String'i JSON Object'e dönüştürmek için JSON.parse () yöntemini kullanabilirsiniz.
AçısalJS
angular.toJson(obj, pretty);
obj: JSON'a serileştirilecek girdi.
pretty (isteğe bağlı):
true değerine ayarlanırsa, JSON çıktısında yeni satırlar ve boşluk bulunur. Bir tamsayıya ayarlanırsa, JSON çıktısı girinti başına bu kadar boşluk içerecektir.
(varsayılan: 2)
JSON.stringify(j, null, 4)
Eğer güzelleştirme gerekiyorsa size JSON güzelleştirilmiş verecek
İkinci parametre ikame edicidir. Dizgi yaparken belirli anahtar değerlerini filtreleyebileceğiniz Filtre olarak kullanılabilir. Null olarak ayarlanırsa, tüm anahtar / değer çiftlerini döndürür
AngularJS kullanıyorsanız, 'json' filtresi bunu yapmalıdır:
<span>{{someObject | json}}</span>
JSON.stringify
bir Javascript nesnesini JSON metnine dönüştürür ve bu JSON metnini bir dizede saklar.
Dönüştürme Nesneden Dizeye
JSON.parse
bir JSON metni dizesini bir Javascript nesnesine dönüştürür.
Dönüştürme bir String'ten Object'e
var j={"name":"binchen"};
JSON String yapmak için aşağıdaki kullanılabilir.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
Daha fazla bilgi için aşağıdaki bağlantıya bakabilirsiniz.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Stringify yönteminden garip olana kadar bunun için tanımlanmış bir özel
var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
json +=",";
}
json+="}";
document.write(json);
ÇIKTI
{"name":"binchen","class":"awesome"}
Ben stringize bellek tükenmeden sorunları yaşıyordu ve diğer çözümler işe yaramadı (en azından ben onları işe alamadım) hangi zaman bu iş parçacığı üzerinde tökezledi. Sayesinde Rohit Kumar sadece yinelerler benim çok büyük JSON nesnesi aracılığıyla I çökmesini durdurmak için
var j = MyObject;
var myObjectStringify = "{\"MyObject\":[";
var last = j.length
var count = 0;
for (x in j) {
MyObjectStringify += JSON.stringify(j[x]);
count++;
if (count < last)
MyObjectStringify += ",";
}
MyObjectStringify += "]}";
MyObjectStringify Büyük bir nesne varsa haricinde size (Bu konuya diğer kez söz gibi) dize Temsilciliği'ne verecek, bu da çalışma gerekir - sadece emin ihtiyaçlarınıza göre inşa yapmak - Ben diziden daha ada sahip gerekli
Woking ... Kullanımı kolay
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
Teşekkürler
böyle yerel stringify işlevini kullanabilirsiniz
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
dize biçiminde json özellik değeri almak istiyorsanız aşağıdaki yolu kullanın
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
Düğüm JS'sinde hata ayıklamak için util.inspect () kullanabilirsiniz . Dairesel referanslarla daha iyi çalışır.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
Mevcut JSON değiştirmeleri benim için çok fazla, bu yüzden kendi fonksiyonumu yazdım. Bu işe yarıyor gibi görünüyor, ama birkaç projeyi kaçırmış olabilirim (bu benim projemde gerçekleşmez). Ve muhtemelen önceden var olan herhangi bir nesne için çalışmaz, sadece kendi kendine yapılan veriler için.
function simpleJSONstringify(obj) {
var prop, str, val,
isArray = obj instanceof Array;
if (typeof obj !== "object") return false;
str = isArray ? "[" : "{";
function quote(str) {
if (typeof str !== "string") str = str.toString();
return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"'
}
for (prop in obj) {
if (!isArray) {
// quote property
str += quote(prop) + ": ";
}
// quote value
val = obj[prop];
str += typeof val === "object" ? simpleJSONstringify(val) : quote(val);
str += ", ";
}
// Remove last colon, close bracket
str = str.substr(0, str.length - 2) + ( isArray ? "]" : "}" );
return str;
}
So in order to convert a js object to JSON String:
Bir nesneyi dizeye dönüştürmek için kullanılan basit sözdizimi
JSON.stringify(value)
Tam sözdizimi şöyledir: JSON.stringify (değer [, replacer [, space]])
Bazı basit örneklere bakalım. Tüm dizenin çift tırnak işareti aldığını ve dizgideki tüm verilerin gerekirse kaçtığını unutmayın.
JSON.stringify("foo bar"); // ""foo bar""
JSON.stringify(["foo", "bar"]); // "["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /* "
{"foo":true,"baz":false}" */
const obj = { "property1":"value1", "property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{ "property1":"value1",
"property2":"value2"}"*/
Sadece JSON.stringify
bu tür dönüşümleri yapmak için kullanın - ancak undefined
değeri olan alanların json'a dahil edilmeyeceğini unutmayın
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
Alan remember
json çıkışından 'kaybolur'
JSON nesnesini String'e dönüştürmek için JSON.stringify () yöntemini kullanabilirsiniz.
var j={"name":"hello world"};
JSON.stringify(j);
Bu dizeyi tekrar json nesnesine dönüştürmek için JSON.parse () yöntemini kullanabilirsiniz.
kullanım JSON.stringify(param1, param2, param3);
Nedir: -
param1 -> JSON birimine dönüştürülecek değer
param2 -> fonksiyonunu kendi tarzınızda dizgi yapmak. Alternatif olarak, nesnelerin nihai JSON'a dahil edilmesi gereken beyaz bir liste görevi görür.
param3 -> A Eklenecek beyaz alan sayısını gösteren Sayı veri türü. İzin verilen maks. 10'dur.
convert str => obj
const onePlusStr = '[{"marka": "oneplus"}, {"model": "7T"}]';
const onePLusObj = JSON.parse (onePlusStr);
convert obj => str
const onePLusObjToStr = JSON.stringify (onePlusStr);
JSON'daki JSON ayrıştırma referansları:
JSON.parse (): click
JSON.stringify (): click
Stringify işlevini kullanma
var j = {
"name":"binchen"
};
var j_json = JSON.stringify(j);
console.log("j in json object format :", j_json);
Mutlu kodlama !!!
//use JSON.stringify({})
const stringified = JSON.stringify ({}) // dize biçiminde dönüştürmek istediğiniz nesneyi geçirin
bir json dizeniz varsa ve [] ile sarılmamışsa, önce onu sarın
var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);
VEYA
var jsonobj = eval('(' + str + ')');
console.log(jsonobj);
JSON.stringify()
aradığınız yöntem.