Converter o objecto JS para o texto JSON
se defini um objecto em JS com:
var j={"name":"binchen"};
Como posso converter o objecto ao JSON? O texto de saída deve ser:
'{"name":"binchen"}'
26 answers
Todos os navegadores actuais têm suporte JSON nativo incorporado. Desde que não estejas a lidar com navegadores pré-históricos como o IE6/7, podes fazê-lo tão facilmente como isso.
var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'
Com JSON.stringify()
encontrado em json2.js ou nativo na maioria dos navegadores modernos.
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.
Confira updated/better way:
Actualização de 17 de Maio de 2008: desinfectante pequeno adicionado ao método toObject. Agora toObject () will not eval () the string se encontrar algum código malicioso em ele.Para mais segurança: não definir as acusações de inclusão são verdadeiras.
Douglas Crockford, pai do conceito JSON, escreveu um dos primeiros stringificadores para JavaScript. Mais tarde Steve Yen no Trim Path escreveu uma versão melhorada agradável que eu usei por algum tempo. São as minhas mudanças na versão do Steve que gostaria de partilhar contigo. Basicamente, derivaram do meu desejo de fazer o stringifier.• handle and restore cyclical references • include the JavaScript code for functions/methods (as an option) • exclude object members from Object.prototype if needed.
Pode usar JSON.stringify () método para converter objecto JSON para cadeia de caracteres.
var j={"name":"binchen"};
JSON.stringify(j)
Para o processo inverso, pode utilizar JSON.parse () método para converter a cadeia de caracteres JSON para o objecto JSON.
Json Stringify pode converter o seu objecto js para json
var x = {"name" : "name1"};
JSON.stringify(x);
JSON.stringify({"key":"value"});
Se está a usar AngularJS, o filtro' json ' deve fazê-lo:
<span>{{someObject | json}}</span>
Em angularJS
angular.toJson(obj, pretty);
Obj: Entrada a ser serializada no JSON.
Bonito (opcional):
Se configurado como true, o resultado do JSON irá conter linhas novas e espaços em branco. Se configurado para um inteiro, a saída JSON conterá que muitos espaços por indentação.
(por omissão: 2)
JSON.stringify
transforma um objeto Javascript em texto JSON e armazena esse texto JSON em uma string.
A conversão é um objecto para cadeia de caracteres
JSON.parse
transforma uma cadeia de texto JSON em um objeto Javascript.
A conversão é uma sequência para objecto
var j={"name":"binchen"};
Para torná-lo uma cadeia de caracteres JSON pode ser usado.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
Para mais informações, poderá consultar esta ligação abaixo.
Https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
JSON.stringify(j,null,4)
dar-lhe-ia JSON embelezado no caso de precisar de embelezamento também.
var someObj = { "name" : "some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr );
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 += "]}";
O MyObjectStringify dar-lhe-ia o seu texto de representação (tal como mencionado outras vezes neste tópico) excepto se tiver um objecto grande, isto também deve funcionar - apenas certifique-se você constrói-o para se ajustar às suas necessidades - eu precisava dele para ter um nome do que array
Um costume definido para isto, até fazermos algo estranho do método de 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);
Resultado
{"name":"binchen","class":"awesome"}
const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
console.log(myJSON);
Woking... Fácil de usar
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
Obrigado.
Copia e pase
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvertedData = JSON.stringify(formData); // Convert to json
});
Pode usar a função de stringify nativa assim
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
Se quiser obter o valor das propriedades do json no formato de texto use a seguinte forma
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
Define objecto
let obj = {
"firstname" : "Hello",
"lastname" : "javascript"
};
Depois converte - o em texto usando este código
strObj= JSON.stringify(obj);
Para ter a certeza que consola o resultado
console.log(strObj);
Tudo o que precisas é de adicionar este código abaixovar j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'
Para depuração no nó JS você pode usar util.inspeccionar () . Funciona melhor com referências circulares.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
Podes usar o JSON.função stringify () para fazer isso.
As substituições JSON existentes onde é demais para mim, por isso escrevi a minha própria função. Isto parece funcionar, mas eu poderia ter perdido vários casos de borda (que não ocorrem em meu projeto). E provavelmente não funcionará para quaisquer objetos pré-existentes, apenas para dados feitos por si mesmos.
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:
A sintaxe simples para converter um objeto para uma string é
JSON.stringify(value)
A sintaxe completa é: JSON.stringify (valor[, substituidor[, espaço]])
Vejamos alguns exemplos simples. Note que toda a cadeia fica aspas duplas e todos os dados na string são escapados se necessario.
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"}"*/
O que tu queres é:
var yourObject = {a : "string", b : 2 };
Json.Stringify(yourObject);
De qualquer forma, se quiser uma impressão bonita, deve verificar: Como posso imprimir o JSON usando o JavaScript?
Verifique mais isto para obter informações sobre o JSON stringify / parse.
Se tens uma corda json e não está embrulhada com [] Então embrulha-a primeiro
var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);
Ou
var jsonobj = eval('(' + str + ')');
console.log(jsonobj);