Odpowiedzi:
Wszystkie obecne przeglądarki mają wbudowaną obsługę JSON. Tak długo, jak nie masz do czynienia z przeglądarkami prehistorycznymi, takimi jak IE6 / 7, możesz to zrobić tak łatwo:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
JSON.stringify(j);
aby działać
var formattedJSON = JSON.stringify(j, null, 2);
Dzięki JSON.stringify()
znaleźć w json2.js lub rodzimy w większości nowoczesnych przeglądarek.
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
jest opcjonalne, więc jeśli chcesz nadal używać space
argumentu można umieścić null
na replacer
. Jeśli jesteś zainteresowany wykorzystaniem tej funkcji do ładnego drukowania, ta odpowiedź jest również przydatna: stackoverflow.com/a/7220510/857209
Sprawdź zaktualizowany / lepszy sposób autorstwa Thomasa Franka:
Aktualizacja 17 maja 2008: Dodano mały środek dezynfekujący do metody toObject. Teraz toObject () nie będzie ewaluować () ciągu, jeśli znajdzie w nim szkodliwy kod. Dla jeszcze większego bezpieczeństwa: Nie ustawiaj flagi includeFunctions na true.
Douglas Crockford, ojciec koncepcji JSON, napisał jeden z pierwszych strunikatorów dla JavaScript. Później Steve Yen z Trim Path napisał fajną, ulepszoną wersję, z której korzystałem od jakiegoś czasu. To moje zmiany w wersji Steve'a, którymi chciałbym się z tobą podzielić. Zasadniczo wynikały one z mojego pragnienia, aby utworzyć ciągnik:
- obsługiwać i przywracać cykliczne odniesienia
- dołącz kod JavaScript dla funkcji / metod (jako opcja)
- w razie potrzeby wyklucz elementy składowe obiektu z Object.prototype.
Możesz użyć metody JSON.stringify () do konwersji obiektu JSON na String.
var j={"name":"binchen"};
JSON.stringify(j)
W przypadku procesu odwrotnego można użyć metody JSON.parse () do konwersji ciągu JSON na obiekt JSON.
W angularJS
angular.toJson(obj, pretty);
obj: Dane wejściowe do serializacji do JSON.
pretty (opcjonalnie):
Jeśli ustawiona na wartość true, dane wyjściowe JSON będą zawierać znaki nowej linii i białe znaki. Jeśli ustawione na liczbę całkowitą, wyjście JSON będzie zawierało tyle spacji na wcięcie.
(domyślnie: 2)
JSON.stringify(j, null, 4)
dałby upiększony JSON na wypadek, gdybyś potrzebował również upiększenia
Drugi parametr to zamiennik. Można go użyć jako filtru, w którym można odfiltrować niektóre kluczowe wartości podczas tworzenia łańcucha. Ustawienie wartości null spowoduje zwrócenie wszystkich par wartości klucza
Jeśli używasz AngularJS, powinien to zrobić filtr „json”:
<span>{{someObject | json}}</span>
JSON.stringify
zamienia obiekt Javascript w tekst JSON i przechowuje ten tekst JSON w ciągu.
Konwersja jest obiektem na ciąg
JSON.parse
zamienia ciąg tekstu JSON w obiekt JavaScript.
Konwersja jest ciągiem obiektowym
var j={"name":"binchen"};
aby był to ciąg JSON, można użyć następującego.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
Aby uzyskać więcej informacji, zapoznaj się z tym linkiem poniżej.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Jeden niestandardowy zdefiniowany do tego, dopóki nie zrobimy dziwnej z metody stringify
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);
WYNIK
{"name":"binchen","class":"awesome"}
Miałem problemy z brakiem pamięci stringify i inne rozwiązania nie działały (przynajmniej nie mogłem ich zmusić do działania), kiedy natknąłem się na ten wątek. Dzięki Rohit Kumar po prostu iteruję przez mój bardzo duży obiekt JSON, aby zatrzymać awarię
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 dałby ci reprezentację ciągu (tak jak wspomniano wcześniej w tym wątku), chyba że masz duży obiekt, to powinno również działać - po prostu upewnij się, że zbudowałeś go do swoich potrzeb - Potrzebowałem go, aby miał nazwę niż tablica
Woking ... Łatwy w użyciu
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
Dzięki
możesz użyć natywnej funkcji stringify w ten sposób
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
jeśli chcesz uzyskać wartość właściwości json w postaci łańcucha, skorzystaj z następującego sposobu
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
Do debugowania w Node JS można użyć funkcji util.inspect () . Działa lepiej z referencjami cyklicznymi.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
Istniejące zamienniki JSON były dla mnie zbyt wiele, więc napisałem własną funkcję. Wydaje się, że to działa, ale mogłem przegapić kilka przypadków krawędzi (które nie występują w moim projekcie). I prawdopodobnie nie będzie działać dla żadnych wcześniej istniejących obiektów, tylko dla danych utworzonych samodzielnie.
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:
Prosta składnia do konwersji obiektu na ciąg znaków to
JSON.stringify(value)
Pełna składnia to: JSON.stringify (wartość [, zamiennik [, spacja]])
Zobaczmy kilka prostych przykładów. Zauważ, że cały ciąg otrzymuje podwójne cudzysłowy, a wszystkie dane w ciągu są usuwane w razie potrzeby.
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"}"*/
Po prostu użyj, JSON.stringify
aby wykonać taką konwersję - pamiętaj jednak, że pola o undefined
wartości nie zostaną uwzględnione w json
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
Pole remember
„znikają” z wyjścia json
Możesz użyć metody JSON.stringify () do konwersji obiektu JSON na String.
var j={"name":"hello world"};
JSON.stringify(j);
Aby przekonwertować ten ciąg znaków z powrotem na obiekt json, można użyć metody JSON.parse ().
posługiwać się JSON.stringify(param1, param2, param3);
Co jest: -
param1 -> wartość do konwersji na JSON
param2 -> funkcja do strunizacji na swój własny sposób. Alternatywnie, służy jako biała lista, dla której obiekty muszą być zawarte w końcowym JSON.
param3 -> Typ danych Number wskazujący liczbę białych znaków do dodania. Dozwolone są maksymalnie 10.
konwersja str => obj
const onePlusStr = '[{„brand”: „oneplus”}, {„model”: „7T”}] ”;
const onePLusObj = JSON.parse (onePlusStr);
konwersja obj => str
const onePLusObjToStr = JSON.stringify (onePlusStr);
Odwołania do analizy JSON w JS:
JSON.parse (): kliknij
JSON.stringify (): kliknij
Użyj funkcji stringify
var j = {
"name":"binchen"
};
var j_json = JSON.stringify(j);
console.log("j in json object format :", j_json);
Miłego kodowania !!!
//use JSON.stringify({})
const stringified = JSON.stringify ({}) // przekaż obiekt, który chcesz przekonwertować w formacie łańcucha
jeśli masz ciąg json i nie jest on owinięty [], to najpierw go zawiń
var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);
LUB
var jsonobj = eval('(' + str + ')');
console.log(jsonobj);
JSON.stringify()
jest metodą, której szukasz.