Giống như các câu trả lời khác đã chỉ ra, câu trả lời được chấp nhận cho câu hỏi này dường như bỏ qua sự hiểu lầm cấu trúc dữ liệu của poster gốc.
Vấn đề chính dường như là giải pháp ban đầu coi JSON hoàn toàn là từ điển, trong khi thực tế đó là ...
Từ điển trong danh sách, trong một từ điển, trong một từ điển
Do đó, ['data']
là bắt buộc để truy cập khóa cấp cao nhất: cặp giá trị của từ điển, ['current_conditions']
truy cập vào cấp độ tiếp theo của từ điển, sau đó [0]
phải được sử dụng để truy cập phần tử đầu tiên của danh sách [chỉ có 1 phần tử].
Chỉ sau đó ['temp_C']
mới có thể được sử dụng để truy cập giá trị thực tế cho khóa đó và truy xuất dữ liệu.
x={
"data": {
"current_condition":
[{
"cloudcover": "0",
"humidity": "54",
"observation_time": "08:49 AM",
"precipMM": "0.0",
"pressure": "1025",
"temp_C": "10",
"temp_F": "50",
"visibility": "10",
"weatherCode": "113",
"weatherDesc":
[{
"value": "Sunny"
}],
"weatherIconUrl":
[{
"value": "\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}],
"winddir16Point": "E",
"winddirDegree": "100",
"windspeedKmph": "22",
"windspeedMiles": "14"
},
{
"cloudcover": "0",
"humidity": "54",
"observation_time": "08:49 AM",
"precipMM": "0.0",
"pressure": "1025",
"temp_C": "5",
"temp_F": "50",
"visibility": "10",
"weatherCode": "113",
"weatherDesc":
[{
"value": "Sunny"
}],
"weatherIconUrl":
[{
"value": "\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}],
"winddir16Point": "E",
"winddirDegree": "100",
"windspeedKmph": "22",
"windspeedMiles": "14"
} ]
}
}
print[x['data']['current_condition'][0]['weatherDesc'][0]['value']]
# results in 'Sunny'
Trả lời cho một câu hỏi khác trong các bình luận,
"Có cách nào để làm điều này mà không biết chỉ số, giả sử có nhiều mục điều kiện hiện tại hơn không?"
Giả sử nhiều mục current_condition
không có khả năng bạn chỉ muốn một giá trị hoặc nếu bạn làm thì bạn có thể có một thông tin khác để xác định giá trị cụ thể đó [tức là vị trí hoặc một cái gì đó].
Giả sử tập dữ liệu của bạn được đặt tên là x
, tức là
y = []
for index in range[0,len[x['data']['current_condition']]]
y.append[x['data']['current_condition'][index]['temp_C']]
0.Nếu bạn muốn tất cả các mục current_condition
, bạn có thể lặp qua danh sách [của
y = []
for index in range[0,len[x['data']['current_condition']]]
y.append[x['data']['current_condition'][index]['temp_C']]
2] bằng cách sử dụng:y = []
for index in range[0,len[x['data']['current_condition']]]
y.append[x['data']['current_condition'][index]['temp_C']]
Nhận phần tử đầu tiên trong JSON Array JavaScript với các ví dụ mã Bài viết này sẽ cho bạn thấy, thông qua một loạt các ví dụ, cách khắc phục phần tử đầu tiên trong vấn đề JSON Array JavaScript xảy ra trong mã. Chúng tôi đã có thể tìm ra cách giải quyết phần tử đầu tiên trong mã javascript mảng json bằng cách xem xét một loạt các mẫu khác.const json = "[1, 2, 3]";
const firstElement = JSON.parse[json][0];
Chào mừng đến với cộng đồng Treehouse
Cộng đồng Treehouse là nơi gặp gỡ cho các nhà phát triển, nhà thiết kế và lập trình viên của tất cả các nền tảng và cấp độ kỹ năng để nhận được hỗ trợ. Phối hợp ở đây về các lỗi mã hoặc lỗi mà bạn cần phản hồi hoặc yêu cầu thêm một bộ mắt về dự án mới nhất của bạn. Tham gia cùng hàng ngàn sinh viên Treehouse và cựu sinh viên trong cộng đồng ngày hôm nay. .
Tìm kiếm để học một cái gì đó mới?
Treehouse cung cấp một bản dùng thử miễn phí bảy ngày cho sinh viên mới. Nhận quyền truy cập vào hàng ngàn giờ nội dung và một cộng đồng hỗ trợ. Bắt đầu thử nghiệm miễn phí ngay hôm nay.
Được đăng bởi Ada Adaada ada
Làm thế nào để truy cập phần tử đầu tiên của mảng đối tượng JSON?
{"symbols_requested":3,"symbols_returned":3,"data":[{"symbol":"AAPL","name":"Apple}]
Tôi muốn truy cập tên
Steven Parker
1 câu trả lời
Xin chào, tôi đã được thông báo bởi thẻ của bạn; Nhưng có rất nhiều sinh viên [và đôi khi là người hướng dẫn!] Sẵn sàng giúp đỡ - lần sau hãy thử cho cả cộng đồng ít nhất một ngày để trả lời và bạn luôn có thể gắn thẻ ai đó sau đó.
Mã này dường như là một đối tượng JavaScript theo nghĩa đen. Nó tương thích với JSON, nhưng bây giờ nó không ở định dạng JSON. Nó dường như cũng có hai lỗi:
- Một dấu giá bị thiếu sau khi "Apple"
- và đóng cửa là bị thiếu ở cuối
Vì vậy, nếu chúng ta sửa chúng và định dạng nó để đọc dễ đọc hơn:
{"symbols_requested": 3, "symbols_returned": 3, "data": [ {"symbol": "AAPL", "name": "Apple"} ] }
Chúng ta có thể thấy rằng "tên" là thuộc tính của một đối tượng nằm trong phần tử đầu tiên của một mảng có tên "Dữ liệu", nằm trong đối tượng chính. Vì vậy, ví dụ, nếu đối tượng này đang được tham chiếu bởi một biến có tên "Kiểm tra", bạn có thể truy cập tên như:
3y = [] for index in range[0,len[x['data']['current_condition']]] y.append[x['data']['current_condition'][index]['temp_C']]