Org.json.JsonObjector لم يقبل ما يبدو أنه سلسلة JSON صالحة
-
01-10-2019 - |
سؤال
انا املك string
في Android
التطبيق الذي أحاول تحويله إلى ملف JSONObject
. ال string
يبدو هذا (باستثناء لفترة أطول ومع القيم الفعلية بدلاً من القيم الوهمية التي أدخلتها هنا):
[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]
لقد دخلت هذا بالضبط string
إلى اثنين على الإنترنت JSON validator
S ، وكلاهما يؤكد أنه صالح JSON data
. لذلك سأفترض أن JSONObject
سيكون المُنشئ قادرًا على قبول هذه السلسلة وتحويلها إلى أ JSONObject
. لكن عندما أحاول:
json = new JSONObject(result);
حيث "النتيجة" هو متغير سلسلة يحتوي على السلسلة المذكورة أعلاه ، أحصل على الاستثناء التالي:
JSONException: A JSONObject text must begin with '{' at character 1 of [[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]
ماذا يحدث هنا؟ هل JSONObject
محلل مكسور؟
المحلول
أنت تحاول إنشاء Jsonobject ، لكن ما تعطيه بالفعل هو Jsonarray. هل حاولت إنشاء jsonarray بدلاً من ذلك؟
بدلاً من ذلك ، يمكنك لف صفيفك في كائن حتى تتمكن من إنشاء Jsonobject منه.
نصائح أخرى
أود أن أقترح استخدام مكتبة GSON بدلاً من ذلك ، كما يبدو أكثر ملاءمة.
بالإضافة إلى ذلك ، قد يكون من المفيد الاستخدام هذه الأداة لاختبار بياناتك (بياناتك صالحة راجع للشغل):