Làm thế nào để bạn đại diện cho một chuỗi JSON của chuỗi?


183

Đây là tất cả những gì bạn cần cho JSON hợp lệ, phải không?

["somestring1", "somestring2"]

6
Đó là một mảng JSON chứa hai chuỗi, vâng ... có nhiều câu hỏi hơn không? ;)
Thị trấn

Tôi đọc một cái gì đó mâu thuẫn với những gì chúng ta đều đồng ý. Vì vậy, tôi muốn kiểm tra thực tế ở đó. Cảm ơn!
finneycanhelp

4
Ah tôi thấy! Thật xấu hổ khi bạn không thể chấp nhận câu hỏi của chính mình như câu trả lời: D
Town

:) Vâng, đó không chỉ là câu trả lời thú vị. Chính những người tuyệt vời như chính bạn đã giúp trang web này thành công thú vị!
finneycanhelp

Câu trả lời:


296

Tôi sẽ giải thích thêm một chút về câu trả lời tuyệt vời của ChrisR và mang lại hình ảnh từ tài liệu tham khảo tuyệt vời của anh ấy .

Một JSON hợp lệ luôn bắt đầu bằng dấu ngoặc nhọn {hoặc dấu ngoặc vuông [, không có gì khác.

{sẽ bắt đầu object:

dấu ngoặc trái theo sau là chuỗi khóa (tên không thể lặp lại, trong dấu ngoặc kép), dấu hai chấm và giá trị (loại hợp lệ được hiển thị bên dưới), theo sau là dấu phẩy tùy chọn để thêm nhiều cặp chuỗi và giá trị theo ý muốn và kết thúc bằng một cú đúp phải

{ "key": value, "another key": value }

Gợi ý : mặc dù javascript chấp nhận các trích dẫn đơn ', JSON chỉ mất hai lần ".

[sẽ bắt đầu array:

dấu ngoặc trái theo sau là giá trị, dấu phẩy tùy chọn để thêm giá trị theo ý muốn và kết thúc bằng dấu ngoặc phải

[value, value]

Gợi ý : khoảng trắng giữa các phần tử luôn bị bỏ qua bởi bất kỳ trình phân tích cú pháp JSON nào.

valuelà một object, array, string, number, boolhoặc null:

Hình ảnh hiển thị 6 loại giá trị JSON có thể là: chuỗi, số, đối tượng JSON, Mảng / danh sách, boolean và null

Vì vậy, yeah, ["a", "b"]là một JSON hoàn toàn hợp lệ, giống như bạn có thể thử trên liên kết Manish trỏ .

Dưới đây là một vài ví dụ JSON hợp lệ bổ sung, mỗi ví dụ:

{}

[0]

{"__comment": "json doesn't accept comments and you should not be commenting even in this way", "avoid!": "also, never add more than one key per line, like this"}

[{   "why":null} ]

{
  "not true": [0, false],
  "true": true,
  "not null": [0, 1, false, true, {
    "obj": null
  }, "a string"]
}

22
Đại diện UI tuyệt vời
shridutt kothari

JSON có phải có dấu ngoặc kép không? Tôi đã cố gắng xác thực chuỗi OP ở trên nhưng với các trích dẫn duy nhất trên jsonlint.com và nó cho tôi biết nó không hợp lệ. Nhưng nó hợp lệ khi sử dụng dấu ngoặc kép.
Ray

@ Trả lời như thường lệ, điều đó không có câu trả lời đơn giản hoặc không, mặc dù tôi muốn nói rằng đó chủ yếu là "ừ, chỉ cần đi với dấu ngoặc kép". json.org chỉ cho chúng tôi biết về việc sử dụng dấu ngoặc kép và hầu hết các địa điểm có thể sẽ tuân theo điều đó. Tuy nhiên, đây là một cuộc điều tra sâu hơn về nó: stackoverflow.com/a/2275428/274502
cregox

61

Đối tượng JSON của bạn trong trường hợp này là một danh sách. JSON hầu như luôn là một đối tượng có thuộc tính; một tập hợp một hoặc nhiều cặp khóa: giá trị, vì vậy rất có thể bạn sẽ thấy một từ điển:

{ "MyStringArray" : ["somestring1", "somestring2"] }

sau đó bạn có thể yêu cầu giá trị của "MyStringArray"và bạn sẽ nhận lại danh sách hai chuỗi "somestring1""somestring2".


12
Ví dụ mã bạn đã đăng không hợp lệ, khi bạn cố phân tích chuỗi đó dưới dạng json, nó sẽ đưa ra lỗi / ngoại lệ. Thực tế bạn nói rằng JSON luôn là cặp khóa / giá trị cũng vốn đã sai. Không có gì trong đặc tả JSON nói rằng bạn CẦN có các cặp khóa / giá trị. Khi nói về vận chuyển dữ liệu thực sự cặp giá trị / chính là cấu trúc hữu ích nhất nhưng chuỗi OP đăng là hoàn hảo JSON hợp lệ: codebeautify.org/jsonviewer/92ac7b
ChrisR

1
Tôi đã có API trên não, nơi bạn muốn tìm kiếm giá trị trong một mảng dựa trên khóa. Vì vậy, nó sẽ là, đối với một mảng chưa được đặt tên, {"1": "somestring1", "2": "somestring2"}
PapaSmurf

41

Về cơ bản là có, JSON chỉ là một đại diện theo nghĩa đen của javascript về giá trị của bạn vì vậy những gì bạn nói là chính xác.

Bạn có thể tìm thấy một lời giải thích khá rõ ràng và hay về ký hiệu JSON trên http://json.org/


5
String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

Đây là một ví dụ về chuỗi JSON có Employeeđối tượng, sau đó nhiều chuỗi và giá trị trong một mảng làm tham chiếu đến @cregox...

Một chút phức tạp nhưng có thể giải thích rất nhiều trong một chuỗi JSON.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.