Преобразование объекта JS в строку JSON

Если я определил объект в JS с:

var j={"name":"binchen"};

Как преобразовать объект в JSON? Выходная строка должна быть:

'{"name":"binchen"}'

26 ответов


все текущие браузеры имеют встроенную поддержку JSON. Так что, пока вы не имеете дело с доисторическими браузерами, такими как IE6/7, Вы можете сделать это так же легко:

var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'

С JSON.stringify() нашли в json2.js или родные в большинстве современных браузеров.

   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.

Проверьте обновленный / лучший способ:

обновление 17 мая 2008: Малый дезинфицирующее средство добавлено в метод toObject. теперь toObject () не будет eval () строка если он найдет вредоносный код в он.Для еще большей безопасности: Не устанавливайте в includeFunctions флаг в true.

Дуглас Крокфорд, отец концепции JSON, написал один из первых стрингификаторов для Яваскрипт. Позже Стив Йен из Trim Path написал хорошую улучшенную версию, которую я использовал в течение некоторого времени. Это мои изменения в версии Стива, которыми я хотел бы поделиться с вами. В основном они проистекали из моего желания сделать stringifier:

• handle and restore cyclical references  
• include the JavaScript code for functions/methods (as an option)  
• exclude object members from Object.prototype if needed.

можно использовать в формате JSON.преобразовать в строки() метод преобразования объекта JSON в строку.

var j={"name":"binchen"};
JSON.stringify(j)

для обратного процесса вы можете использовать в формате JSON.parse () метод преобразования строки JSON в объект JSON.


Json преобразовать в строки можно преобразовать объект js в json

 var x = {"name" : "name1"};
 JSON.stringify(x);

JSON.stringify({"key":"value"});

Если вы используете AngularJS, фильтр 'json' должен это сделать:

<span>{{someObject | json}}</span>

в angularJS

angular.toJson(obj, pretty);

параметр obj: Ввод для сериализации в JSON.

довольно(опционально):
Если установлено значение true, вывод JSON будет содержать новые строки и пробелы. Если задано целое число, вывод JSON будет содержать столько пробелов на отступ.

(по умолчанию: 2)


JSON.stringify превращает объект Javascript в текст JSON и сохраняет этот текст JSON в строке.

преобразование-это объект String

JSON.parse превращает строку текста JSON в объект Javascript.

преобразование строка для объекта

var j={"name":"binchen"};

чтобы сделать его строкой JSON, можно использовать.

JSON.stringify({"key":"value"});

JSON.stringify({"name":"binchen"});

для более подробной информации вы можете обратиться к этой ссылке под.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify


JSON.stringify(j,null,4) даст вам украшенный JSON в случае, если вам нужно украшение также


var someObj = { "name" : "some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr  );

У меня были проблемы со stringify, заканчивающейся памятью, и другие решения, похоже, не работали (по крайней мере, я не мог заставить их работать), когда я наткнулся на этот поток. Спасибо Рохит Кумар Я просто перебираю мой очень большой объект JSON, чтобы остановить его от сбоя

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 даст вам ваше строковое представление (как упоминалось ранее в этом потоке), за исключением того, что у вас есть большой объект, это также должно работать - просто убедитесь, что вы построить его в соответствии с вашими потребностями - мне нужно было, чтобы у него было имя, чем array


один пользовательский, определенный для этого, пока мы не сделаем strange из stringify method

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);

выход

{"name":"binchen","class":"awesome"}

LIVE http://jsfiddle.net/mailmerohit5/y78zum6v/


const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);

Уокинге... Простота в использовании

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvert = JSON.stringify(formData);  // Convert to json
});

спасибо


просто скопируйте и pase

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
});

вы можете использовать собственную функцию stringify, как это

const j={ "name": "binchen" }

/** convert json to string */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}

Если вы хотите получить значение свойств json в строковом формате, используйте следующий способ

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

определить объект

let obj = {
"firstname" : "Hello",
"lastname" : "javascript"

};

затем преобразовать его в строку, используя этот код

strObj= JSON.stringify(obj);

чтобы убедиться, что консоль результат

console.log(strObj);

все, что вам нужно, это добавить этот код ниже
var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'


для отладки в узле JS вы можете использовать util.inspect (). Он лучше работает с круговыми ссылками.

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));

вы можете использовать JSON.функция stringify () для этого.


существующие замены JSON, где слишком много для меня, поэтому я написал свою собственную функцию. Кажется, это работает, но я мог пропустить несколько крайних случаев (которые не встречаются в моем проекте). И, вероятно, не будет работать для каких-либо ранее существующих объектов, только для самодельных данных.

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: 

простой синтаксис для преобразования объекта в строку

JSON.stringify(value)

полный синтаксис: формат JSON.stringify (значение[, заменитель[, пробел]])

давайте посмотрим несколько простых примеров. Обратите внимание, что вся строка получает двойные кавычки и все данные в строке экранируются, если необходимый.

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"}"*/

ты хочешь :

var yourObject = {a : "string", b : 2 };
Json.Stringify(yourObject);

в любом случае, если вы хотите качественную печать, вы должны проверить: как я могу pretty-print JSON с помощью JavaScript?

Подробнее проверьте это для получения информации о JSON stringify / parse.


Если у вас есть строка json, и она не обернута [], то сначала оберните ее

var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);

или

var jsonobj = eval('(' + str + ')');
console.log(jsonobj);