Получение значений из строки JSON, возвращаемой веб-службой C#
Привет,
Я написал веб-сервис C#, как показано ниже, чтобы сгенерировать строку JSON или так я предполагал.
List<Dictionary<String, Object>> lstdict = new List<Dictionary<String, Object>>(); ... ... ... Logic for connecting db and getting records in msqldat (data reader) goes here. while (msqldat.Read()) { var detls = new Dictionary<string, object>(); for (int i = 0; i < msqldat.FieldCount; i++) { detls.Add(msqldat.GetName(i), msqldat.IsDBNull(i) ? null : msqldat.GetValue(i)); lstdict.Add(detls); } } JavaScriptSerializer jss = new JavaScriptSerializer(); String mret = jss.Serialize(lstdict);
Вышеприведенный метод webservice вызывается в моем java - коде и получает нижеприведенную строку.
{"GetDataResult":"[ {\"uname\":\"hkIUZIikXVTC5aNaSva8IQ==\",\"passwd\":\"hkIUZIikXVTC5aNaSva8IQ==\",\"validupto\":\"\\\/Date(1545330600000)\\\/\",\"dept\":\"juubHSHgLr\/3JWnrZCh5LeeW5Q7lioWOZ1\/Tg+YRy\/o=\",\"rid\":1},{\"uname\":\"hkIUZIikXVTC5aNaSva8IQ==\",\"passwd\":\"hkIUZIikXVTC5aNaSva8IQ==\",\"validupto\":\"\\\/Date(1545330600000)\\\/\",\"dept\":\"juubHSHgLr\/3JWnrZCh5LeeW5Q7lioWOZ1\/Tg+YRy\/o=\",\"rid\":2}]"}
Я пытаюсь получить значения в приложении android, используя этот Java-код :
JSONObject uiobj = new JSONObject(mret); JSONArray arrUserinfo = uiobj.getJSONArray("GetDataResult");
Во второй строке код завершается с этой ошибкой :
..... at GetDataResult of type java.lang.String cannot be converted to JSONArray
Пожалуйста, подскажите, как мне это сделать ? Заранее спасибо. Я ошибаюсь со стороны c# или java.
Что я уже пробовал:
Подобный код я нашел везде и не смог заставить его работать. Поэтому я подумал, что моя строка JSON требует другого метода подхода, и поэтому разместил ее здесь. Я новичок в JSON, пожалуйста, потерпите невежество.
Richard MacCutchan
Данные возвращаются в виде двух строк, разделенных двоеточием. Эти дополнительные символы кавычек должны быть удалены в первую очередь.