Câu trả lời:
Tất cả các trình duyệt hiện tại đều có hỗ trợ JSON gốc được tích hợp. Miễn là bạn không phải đối phó với các trình duyệt tiền sử như IE6 / 7, bạn có thể làm điều đó dễ dàng như vậy:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
JSON.stringify(j);
công việc
var formattedJSON = JSON.stringify(j, null, 2);
Được JSON.stringify()
tìm thấy trong json2.js hoặc có nguồn gốc trong hầu hết các trình duyệt hiện đại.
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
là tùy chọn, vì vậy nếu bạn muốn vẫn sử dụng space
arg bạn đặt null
cho replacer
. Nếu bạn quan tâm đến việc sử dụng chức năng này để in ấn đẹp, tôi thấy câu trả lời này cũng hữu ích: stackoverflow.com/a/7220510/857209
Kiểm tra cách cập nhật / tốt hơn của Thomas Frank:
Cập nhật ngày 17 tháng 5 năm 2008: Công cụ khử trùng nhỏ được thêm vào phương thức toObject. Bây giờ toObject () sẽ không eval () chuỗi nếu nó tìm thấy bất kỳ mã độc hại nào trong đó. Để bảo mật hơn nữa: Đừng đặt cờ includeFifts thành true.
Douglas Crockford, cha đẻ của khái niệm JSON, đã viết một trong những chuỗi ký tự đầu tiên cho JavaScript. Sau này Steve Yen tại Trim Path đã viết một phiên bản cải tiến tốt đẹp mà tôi đã sử dụng một thời gian. Đó là những thay đổi của tôi đối với phiên bản của Steve mà tôi muốn chia sẻ với bạn. Về cơ bản, chúng xuất phát từ mong muốn của tôi để tạo ra bộ xâu chuỗi:
- xử lý và khôi phục tài liệu tham khảo theo chu kỳ
- bao gồm mã JavaScript cho các hàm / phương thức (dưới dạng tùy chọn)
- loại trừ các thành viên đối tượng khỏi Object.prototype nếu cần.
Bạn có thể sử dụng phương thức JSON.opesify () để chuyển đổi đối tượng JSON thành Chuỗi.
var j={"name":"binchen"};
JSON.stringify(j)
Để xử lý ngược lại, bạn có thể sử dụng phương thức JSON.parse () để chuyển đổi Chuỗi JSON thành Đối tượng JSON.
Trong góc
angular.toJson(obj, pretty);
obj: Đầu vào được tuần tự hóa thành JSON.
khá (không bắt buộc):
Nếu được đặt thành true, đầu ra JSON sẽ chứa các dòng mới và khoảng trắng. Nếu được đặt thành một số nguyên, đầu ra JSON sẽ chứa nhiều khoảng trống trên mỗi lần thụt lề.
(mặc định: 2)
JSON.stringify(j, null, 4)
sẽ cung cấp cho bạn JSON đẹp trong trường hợp bạn cũng cần làm đẹp
Tham số thứ hai là thay thế. Nó có thể được sử dụng như Bộ lọc trong đó bạn có thể lọc ra các giá trị chính nhất định khi xâu chuỗi. Nếu được đặt thành null, nó sẽ trả về tất cả các cặp giá trị khóa
Nếu bạn đang sử dụng AngularJS, bộ lọc 'json' sẽ làm điều đó:
<span>{{someObject | json}}</span>
JSON.stringify
biến một đối tượng Javascript thành văn bản JSON và lưu trữ văn bản JSON đó trong một chuỗi.
Việc chuyển đổi là một đối tượng thành chuỗi
JSON.parse
biến một chuỗi văn bản JSON thành một đối tượng Javascript.
Việc chuyển đổi là một chuỗi thành đối tượng
var j={"name":"binchen"};
để làm cho nó thành một chuỗi JSON sau đây có thể được sử dụng.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
Để biết thêm thông tin bạn có thể tham khảo liên kết này dưới đây.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/opesify
Một tùy chỉnh được xác định cho điều này, cho đến khi chúng ta làm lạ từ phương thức chuỗi hóa
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);
ĐẦU RA
{"name":"binchen","class":"awesome"}
Tôi đã gặp vấn đề với việc xâu chuỗi hết bộ nhớ và các giải pháp khác dường như không hoạt động (ít nhất là tôi không thể làm cho chúng hoạt động được), đó là khi tôi vấp phải chủ đề này. Nhờ Rohit Kumar, tôi chỉ cần lặp qua đối tượng JSON rất lớn của mình để ngăn nó khỏi bị sập
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 sẽ cung cấp cho bạn chuỗi đại diện của bạn (giống như các lần khác được đề cập trong luồng này) ngoại trừ nếu bạn có một đối tượng lớn, điều này cũng sẽ hoạt động - chỉ cần đảm bảo bạn xây dựng nó để phù hợp với nhu cầu của bạn - Tôi cần nó có tên hơn mảng
Woking ... Dễ sử dụng
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
Cảm ơn
bạn có thể sử dụng hàm stringify như thế này
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
Nếu bạn muốn nhận giá trị thuộc tính json ở định dạng chuỗi, hãy sử dụng cách sau
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
Để gỡ lỗi trong Node JS, bạn có thể sử dụng produc.inspect () . Nó hoạt động tốt hơn với các tài liệu tham khảo tròn.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
Các thay thế JSON hiện có nơi quá nhiều cho tôi, vì vậy tôi đã viết hàm riêng của mình. Điều này có vẻ hiệu quả, nhưng tôi có thể đã bỏ lỡ một số trường hợp cạnh (điều đó không xảy ra trong dự án của tôi). Và có lẽ sẽ không hoạt động cho bất kỳ đối tượng tồn tại trước, chỉ cho dữ liệu tự tạo.
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:
Cú pháp đơn giản để chuyển đổi một đối tượng thành một chuỗi là
JSON.stringify(value)
Cú pháp đầy đủ là: JSON.opesify (value [, replacer [, space]])
Chúng ta hãy xem một số ví dụ đơn giản. Lưu ý rằng toàn bộ chuỗi được trích dẫn kép và tất cả dữ liệu trong chuỗi được thoát nếu cầ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"}"*/
Chỉ sử dụng JSON.stringify
để thực hiện chuyển đổi như vậy - tuy nhiên hãy nhớ rằng các trường có undefined
giá trị sẽ không được đưa vào json
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
Trường remember
'biến mất' từ đầu ra json
Bạn có thể sử dụng phương thức JSON.opesify () để chuyển đổi đối tượng JSON thành Chuỗi.
var j={"name":"hello world"};
JSON.stringify(j);
Để chuyển đổi chuỗi này trở lại đối tượng json, bạn có thể sử dụng phương thức JSON.parse ().
sử dụng JSON.stringify(param1, param2, param3);
Những gì là: -
param1 -> giá trị để chuyển đổi sang JSON
param2 -> chức năng xâu chuỗi theo cách riêng của bạn. Ngoài ra, nó phục vụ như một danh sách trắng mà các đối tượng cần được đưa vào JSON cuối cùng.
param3 -> Một kiểu dữ liệu Số cho biết số lượng khoảng trắng cần thêm. Tối đa được phép là 10.
chuyển đổi str => obj
const onePlusStr = '[{"brand": "oneplus"}, {"model": "7T"}]';
const onePLusObj = JSON.parse (onePlusStr);
chuyển đổi obj => str
const onePLusObjToStr = JSON.opesify (onePlusStr);
Tài liệu tham khảo về phân tích cú pháp JSON trong JS:
JSON.parse (): nhấp
JSON.opesify (): nhấp
Sử dụng hàm Stringify
var j = {
"name":"binchen"
};
var j_json = JSON.stringify(j);
console.log("j in json object format :", j_json);
Chúc mừng mã hóa !!!
//use JSON.stringify({})
const stringified = JSON.opesify ({}) // truyền đối tượng bạn muốn chuyển đổi ở định dạng chuỗi
nếu bạn có chuỗi json và nó không được bọc bằng [] thì hãy quấn nó trước
var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);
HOẶC LÀ
var jsonobj = eval('(' + str + ')');
console.log(jsonobj);
JSON.stringify()
là phương pháp bạn đang tìm kiếm.