Priya-Kiko Ответов: 0

Получение значений из строки 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

Данные возвращаются в виде двух строк, разделенных двоеточием. Эти дополнительные символы кавычек должны быть удалены в первую очередь.

0 Ответов