Giá trị khóa mảng javascript json

JSON là định dạng trao đổi dữ liệu độc lập về ngôn ngữ và trọng lượng nhẹ được sử dụng cho hầu hết các giao tiếp giữa máy khách và máy chủ

JSONObject và JSONArray là hai lớp phổ biến thường có trong hầu hết các thư viện xử lý JSON. JSONObject lưu trữ các cặp khóa-giá trị không có thứ tự, giống như triển khai Bản đồ Java. Mặt khác, JSONArray là một chuỗi các giá trị được sắp xếp theo thứ tự giống như Danh sách hoặc Vectơ trong Java

Trong hướng dẫn này, chúng ta sẽ sử dụng JSON-Java [org. json] và tìm hiểu cách xử lý JSONArray để trích xuất giá trị cho một khóa nhất định. Nếu cần, chúng tôi có sẵn phần giới thiệu về thư viện này

2. Phụ thuộc Maven

Trước tiên, chúng tôi sẽ bắt đầu bằng cách thêm phần phụ thuộc bên dưới vào POM của chúng tôi


    org.json
    json
    20180813

Chúng tôi luôn có thể tìm hiểu phiên bản JSON-Java mới nhất trên

3. Xây dựng bối cảnh

Một thông báo JSON thường bao gồm các đối tượng và mảng JSON có thể được lồng vào nhau. Đối tượng JSONArray được đặt trong dấu ngoặc vuông [ ] trong khi đối tượng JSONObject được đặt trong dấu ngoặc nhọn {}. Chẳng hạn, hãy xem xét thông báo JSON này

[
    {
        "name": "John",
        "city": "chicago",
        "age": "22"
    },
    {
        "name": "Gary",
        "city": "florida",
        "age": "35"
    },
    {
        "name": "Selena",
        "city": "vegas",
        "age": "18"
    }
]

Rõ ràng, đó là một mảng các đối tượng JSON. Mỗi đối tượng JSON trong mảng này đại diện cho bản ghi khách hàng của chúng tôi có tên, tuổi và thành phố làm thuộc tính hoặc khóa của nó

4. Xử lý mảng JSON

Với JSON ở trên, điều gì sẽ xảy ra nếu chúng tôi muốn tìm ra tên của tất cả khách hàng của mình?

Như chúng ta đã biết, JSONArray là một danh sách các đối tượng JSON. Vì vậy, hãy tìm tất cả các giá trị cho một khóa nhất định

public List getValuesForGivenKey[String jsonArrayStr, String key] {
    JSONArray jsonArray = new JSONArray[jsonArrayStr];
    return IntStream.range[0, jsonArray.length[]]
      .mapToObj[index -> [[JSONObject]jsonArray.get[index]].optString[key]]
      .collect[Collectors.toList[]];
}

Trong ví dụ trước

  • Đầu tiên, chúng tôi lặp qua toàn bộ danh sách các đối tượng trong một mảng JSON
  • Sau đó, đối với mỗi JSONObject, chúng tôi nhận được giá trị được ánh xạ tới khóa đã cho

Ngoài ra, phương thức optString[] trả về một chuỗi rỗng nếu không tồn tại khóa như vậy

Khi gọi getValuesForGivenKey[jsonArrayStr, “name”] trong đó jsonArrayStr là JSON mẫu của chúng tôi, chúng tôi sẽ nhận được một Danh sách tất cả các tên làm đầu ra

[John, Gary, Selena]

5. Phần kết luận

Trong bài viết nhanh này, chúng ta đã học cách phân tích cú pháp JSONArray để nhận tất cả các giá trị được ánh xạ cho một khóa nhất định. Ở đây, chúng tôi đã sử dụng JSON-Java [org. thư viện json]

JSON. đơn giản là một giải pháp thay thế tương tự và mạnh mẽ khác để làm việc với JSON trong Java. Mời các bạn khám phá

Một đối tượng JSON chứa 0, một hoặc nhiều cặp khóa-giá trị, còn được gọi là thuộc tính. Đối tượng được bao quanh bởi dấu ngoặc nhọn {}. Mỗi cặp khóa-giá trị được phân tách bằng dấu phẩy. Thứ tự của cặp khóa-giá trị không liên quan

Một cặp khóa-giá trị bao gồm một khóa và một giá trị, được phân tách bằng dấu hai chấm [. ]. Khóa là một chuỗi, xác định cặp khóa-giá trị. Giá trị có thể là bất kỳ loại dữ liệu nào sau đây

chuỗi được bao quanh bởi dấu ngoặc kép [" "]numberfloatarrayJSON arrayobjectJSON object [có thể lồng nhau]booleantrue hoặc falseemptynull

Chào Kumar,

Nếu đó là JSON, thì không cần phân tích cú pháp

Ví dụ

var json = {"allFailedServersSysId":["b7fd94681bfa9010c63e55392a4bcbb8"],"appCount":"One App","appRTM":["91579bd61021a800df0bd7621fe7e6aa"],"appServSysId":["1b154ff71b8a58902ac554e56e4bcb6b","53154ff71b8a58902ac554e56e4bcb59"],"appSupportGroup":["fa7f9bd310ada800df0bd7621fe7e6fa"],"server":"vdwvmwsdb69","serverSysId":"b7fd94681bfa9010c63e55392a4bcbb8"};
gs.print[json.allFailedServersSysId];

Sẽ cho kết quả

*** Script: b7fd94681bfa9010c63e55392a4bcbb8

Tuy nhiên, nếu nó thực sự là một chuỗi. Ví dụ: [lưu ý "'" xung quanh json]

var json = '{"allFailedServersSysId":["b7fd94681bfa9010c63e55392a4bcbb8"],"appCount":"One App","appRTM":["91579bd61021a800df0bd7621fe7e6aa"],"appServSysId":["1b154ff71b8a58902ac554e56e4bcb6b","53154ff71b8a58902ac554e56e4bcb59"],"appSupportGroup":["fa7f9bd310ada800df0bd7621fe7e6fa"],"server":"vdwvmwsdb69","serverSysId":"b7fd94681bfa9010c63e55392a4bcbb8"}';
var jsonObj = JSON.parse[json];
gs.print[jsonObj .allFailedServersSysId];

cần phải phân tích cú pháp. Sử dụng JSON. phân tích cú pháp

Kịch bản trên sẽ dẫn đến bên dưới

*** Script: b7fd94681bfa9010c63e55392a4bcbb8

Cách lấy chìa khóa

Lấy một cặp khóa-giá trị .
điểm var = đối tượng. get["điểm số"]; . get["chế độ"]; . .
// Lấy GeoPoints từ phím "location1" và "location2". var objLoc1 = đối tượng. .
// Lấy giá trị của đối tượng JSON. var jsonObject = đối tượng

Mảng có thể có khóa không

Mảng trong javascript thường chỉ được sử dụng với các khóa số, tăng tự động, nhưng đối tượng javascript có thể chứa các cặp giá trị khóa được đặt tên , các hàm và thậm chí .

Khóa JSON có thể có [] không?

Ở định dạng dữ liệu JSON, các khóa phải được đặt trong dấu ngoặc kép. Khóa và giá trị phải được phân tách bằng dấu hai chấm [. ] biểu tượng . Có thể có nhiều cặp khóa-giá trị. Hai cặp khóa-giá trị phải được phân tách bằng ký hiệu dấu phẩy [,].

Giá trị có thể là khóa trong JSON không?

Khóa phải là chuỗi và giá trị phải là loại dữ liệu JSON hợp lệ . chuỗi. con số.

Chủ Đề