2015-02-09 2 views
-2

Я работаю над сигналом R. и я получаю ответ от сервера в формате JSON через следующий метод signalRКак получить конкретную строку от Json

conn.received(new MessageReceivedHandler() { 
     @Override 
     public void onMessageReceived(JsonElement json) { 
      Log.v("Receieved Event Message", json.toString()); } }); 

через это я могу получить ответ журнала, который:

{ «H»: «MyHub» "М": "broadcastMessageFromServer", "A": [ "Single Param Сообщение: [2:23:07 PM] Я клиент"]}

и в этом я хочу вывезти Одноместные param Сообщение [2:23:07 PM] Я клиент

Я применил много способов ответа на Stackoverflow, но я уверен, что не получаю смысла метода, который отправляет нам ответ json. Поэтому, пожалуйста, помогите мне в этом.

ответ

0

Похоже, вы используете GSON Library. Вы можете сделать следующее:

conn.received(new MessageReceivedHandler() { 
    @Override 
    public void onMessageReceived(JsonElement json) { 
     Log.v("Receieved Event Message", json.toString()); 
     JsonObject jsonObject = json.getAsJsonObject(); 
     JsonElement aElement = jsonObject.get("A"); 
     JsonArray aArray = aElement.getAsJsonArray(); 
     ..... 


} }); 

Надеюсь, это то, что вы ищете.

+0

Да, есть предмет Gson в его поведении –

+0

Можете ли вы рассказать мне, как я просматриваю ваше сообщение, чтобы получить точное сообщение. Я имею в виду, можете ли вы продолжить заполнение своего кода. –

+0

До того, как я написал, вы получаете объект JSON Array для A i.e. «A» = [«Сообщение с одним параметром: [2:23:07 PM] Я клиент»]}. Вы можете перебирать массив и получать каждую запись в массиве и извлекать требуемые значения. Я также могу помочь вам с более поздним кодом, но для этого мне нужно будет узнать точную структуру вашего массива JSON, что неясно в примере, который вы указали. – Keya

1

Эта строка, которую вы хотите вынуть, находится внутри массива, который находится внутри объекта.

Вы должны извлечь его так:

JSONObject obj = new JSONObject(myString); //this will contain the whole object 
JSONArray arr = obj.getJSONArray("A"); //this will get the array containing the message 
String result = arr.get(0); //this will get the 1st element of the array which is your message 
Смежные вопросы