Toán tử []
chỉ hợp lệ đối với JsonValue
đối tượng thuộc loại Object
hoặc null. Tất cả những người khác (Int
, Bool
, Array
, v.v.) sẽ xác nhận.
Nếu đối tượng UserRoot0
của bạn là Array
hoặc một số loại khác không phải là (như chuyển vào nút con) để tìm nút đích có thể có hoặc không chứa lỗi. In UserRoot0.toStyledString()
để xem JSON của bạn trông như thế nào và chắc chắn rằng nó trông giống như một đối tượng JSON (xem json.org để có cái nhìn tổng quan về cái đó là gì).
Nhận xét "ToDo" ở đầu tệp nguồn json_value.cpp (trong đó JSON_ASSERT
được xác định) ngụ ý rằng nhà phát triển có thể đang lập kế hoạch xử lý lỗi mạnh mẽ hơn thay vì các xác nhận này trong các phiên bản sau, nhưng trong thời gian chờ đợi, bạn có thể kiểm tra chính mình, như thế này:
if(UserRoot0.isObject() && UserRoot0.isMember("error"))
// Process error node
else
// This node isn't an Object node or doesn't contain the "error" key
vui lòng cung isMember()
cũng sẽ khẳng định cho phi Object
nút, vì vậy hãy chắc chắn kiểm tra isObject()
trước khi kiểm tra isMember()
nếu UserRoot0
không được đảm bảo là một Object
.
Có cài đặt mới, ['failIfExtra'] (http://open-source-parsers.github.io/jsoncpp-docs/doxygen/class_json_1_1_char_reader_builder.html#ac69b7911ad64c171c51ebaf2ea26d958), lỗi này sẽ gặp lỗi phổ biến này. Nó cũng là một phần của 'strictMode()'. – cdunn2001