Chuyển đổi đối tượng JSON thành JavaScript mảng đa chiều

Đối với một trò chơi webgl mà chúng tôi đang thực hiện cho một dự án trường học, chúng tôi phải triển khai bản địa hóa. Chúng tôi quyết định làm điều này với google sheet. Nhưng chúng tôi không thể phân tích cú pháp kết quả một cách chính xác

Chúng tôi đang thực hiện một yêu cầu nhận. https. // tờ. googleapis. com/v4/bảng tính/[FILE_ID]/giá trị/A1. D4?key=[API_KEY]⪯ttyPrint=false

Kết quả chúng tôi đang nhận được trở lại là

 {
     "range": "Sheet1!A1:D4",
     "majorDimension": "ROWS",
     "values": [
         ["key", "en-gb", "en-us", "nl-nl"],
         ["MAIN_MENU", "main menu", "main menu", "hoofdmenu"],
         ["SHOP", "store", "shop", "winkel"],
         ["CHARACTER_SELECTION", "character selection", "character selection", "Karakter keuze"]
     ]
 }

Khi chúng tôi cố gắng phân tích nó với

 [Serializable]
 public struct API_RESULT {
     public string range;
     public string majorDimension;
     public string[][] values;
 }
 
 API_RESULT data = JsonUtility.FromJson[req.downloadHandler.text];

Phạm vi và kích thước chính đang hoạt động chính xác, nhưng đối với các giá trị, chúng tôi nhận được một mảng có độ dài 4 nhưng các mục trống

Có điều gì đó mà chúng tôi đang quên làm, hay đơn giản là không thể làm điều này?

Bình luận

Thêm bình luận

10. Cần 3000 ký tự còn lại ký tự

  • Có thể xem bởi tất cả người dùng
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Có thể xem bởi tất cả người dùng

1

Trả lời bởi Bunny83 · Ngày 28 tháng 3 năm 2019 lúc 08. 49 giờ tối

Unity's JsonUtility có các hạn chế giống như hệ thống tuần tự hóa thông thường trong Unity vì nó có nghĩa là một phần mở rộng. Vì vậy, nó không hỗ trợ các mảng lồng nhau/răng cưa như thế. Tôi thực sự khuyên bạn nên sử dụng trình phân tích cú pháp json khác. Tôi đã viết SimpleJSON dưới dạng một trình phân tích tệp duy nhất cung cấp quyền truy cập đơn giản và thuận tiện vào dữ liệu json. Nó không giải tuần tự hóa thành các đối tượng tùy chỉnh mà chỉ phân tích cú pháp dữ liệu thành cấu trúc phân cấp


Phân tích cú pháp ví dụ của bạn bằng SimpleJSON bạn chỉ có thể làm

 JSONNode data = JSON.Parse[yourJsonText];
 string range = data["range"].Value;
 string majorDimension = data["majorDimension"].Value;
 foreach[JSONNode n in data["values"]]
 {
     string key = n[0].Value;
     string vEngGB = n[1].Value;
 }

Lưu ý rằng mỗi JSONNode cung cấp một struct enumerable / enumerator kiểu KeyValuePair. Tuy nhiên SimpleJSON đi kèm với một toán tử chuyển đổi ẩn cho phép chuyển đổi KeyValuePair thành JSONNode. Điều này xảy ra trong ví dụ của tôi với vòng lặp foreach. Tuy nhiên, bạn cũng có thể lặp qua "mảng" theo cách cổ điển

Chuyển đổi mảng thành đối tượng JSON javascript;

JSON có nghĩa là Ký hiệu đối tượng JavaScript. JSON là một định dạng trao đổi dữ liệu cực kỳ nhẹ để trao đổi dữ liệu giữa phía máy chủ và phía máy khách, nhanh chóng và dễ dàng phân tích và tạo

Nếu bạn đang làm việc với JSON trong JavaScript, thì bạn cũng nên đọc hai bài viết này. Đó là về JSON của javascript

  • Chuyển đổi chuỗi JSON thành JavaScript đối tượng JSON
  • JavaScript Chuyển đổi đối tượng JSON thành chuỗi đối tượng
  • JavaScript Xóa các đối tượng trùng lặp khỏi mảng

Chuyển đổi mảng thành đối tượng JSON JavaScript

Hãy sử dụng phương thức sau để chuyển đổi mảng, đối tượng mảng và mảng hai chiều thành đối tượng json trong JavaScript

  • 1. Chuyển đổi mảng thành đối tượng JSON JavaScript
  • 2. Chuyển đổi một đối tượng thành một mảng
  • 3. Chuyển đổi mảng hai chiều [ 2d ] thành JSON Object JavaScript

1. Chuyển đổi mảng thành đối tượng JSON JavaScript

Bạn có thể sử dụng JSON. stringify để chuyển đổi một mảng thành chuỗi có định dạng JSON trong JavaScript

Giả sử có một mảng chẳng hạn như “[1, 2, 3, 4]”. Nếu bạn muốn chuyển đổi mảng này thành Đối tượng JSON trong javascript. Hãy xem ví dụ dưới đây

Bán tại. -

var array = [1, 2, 3, 4]; 
var arrayToString = JSON.stringify[Object.assign[{}, array]];  // convert array to string
var stringToJsonObject = JSON.parse[arrayToString];  // convert string to json object

console.log[stringToJsonObject];

Nơi đây,

  • 1. JSON. stringify[] và đối tượng. phương thức gán[] chuyển đổi mảng thành chuỗi JSON
  • 2. JSON. phương thức parse[] chuyển đổi chuỗi thành đối tượng JSON trong javascript

2. Chuyển đổi một đối tượng thành một mảng

Khi chuyển đổi một đối tượng thành một mảng, chúng ta sẽ sử dụng phương thức .entries[] từ lớp Object. Điều này sẽ chuyển đổi đối tượng của chúng ta thành một mảng các mảng. Mỗi mảng lồng nhau là một danh sách hai giá trị trong đó mục đầu tiên là khóa và mục thứ hai là giá trị

Đối tượng JSON có thể chuyển đổi thành mảng không?

Chuyển đổi JSON thành mảng bằng `json. . Đảm bảo rằng nó có giá trị chuỗi đến từ máy chủ hoặc nguồn cục bộ.

Gốc JSON có thể là một mảng không?

Một thông báo JSON có thể có một đối tượng ẩn danh hoặc một mảng ẩn danh làm gốc dữ liệu . Không thể đặt một chuỗi JSON bằng chữ, số, boolean hoặc giá trị null làm gốc của dữ liệu bằng cách sử dụng trình phân tích cú pháp JSON.

Mảng JSON có thể không đồng nhất không?

Mỗi mục trong mảng JSON có thể là bất kỳ loại giá trị JSON nào . Đây được gọi là một mảng không đồng nhất. Thông thường, một mảng chỉ chứa một loại giá trị, chẳng hạn như một mảng các chuỗi.

Bạn có thể có một mảng các mảng trong JSON không?

Chúng ta có thể lưu trữ một mảng bên trong một mảng JSON khác . Nó được biết đến như một mảng các mảng hoặc một mảng JSON đa chiều.

Chủ Đề