سؤال

انا املك string في Android التطبيق الذي أحاول تحويله إلى ملف JSONObject. ال string يبدو هذا (باستثناء لفترة أطول ومع القيم الفعلية بدلاً من القيم الوهمية التي أدخلتها هنا):

[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]

لقد دخلت هذا بالضبط string إلى اثنين على الإنترنت JSON validatorS ، وكلاهما يؤكد أنه صالح 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 بدلاً من ذلك ، كما يبدو أكثر ملاءمة.

بالإضافة إلى ذلك ، قد يكون من المفيد الاستخدام هذه الأداة لاختبار بياناتك (بياناتك صالحة راجع للشغل):

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top