0

サーバーからの回答を含む文字列を取得します。やりたいJSONObject.

私がやります

JSONObject jsonObj = new JSONObject(json);

jsonには

"{"sentences":[{"trans":"R\u0455R\u0491ReR\u0405","orig":"�\u0455�\u0491��\u0405","translit":"","src_translit": "R\u1E91Rg\u0300RoR\u1E90"}],"src":"ru","server_time":1}"

しかしjsonObjには

"{"sentences":[{"src_translit":"RẑRg̀RoRẐ",​​"orig":"�s�ڑ��Ѕ","trans":"RẑRڑReRЅ","translit":""}],"server_time" :1,"src":"ru"}"

では、「trans」から値を取得するにはどうすればよいでしょうか。

PS RṇRṁReRЅ 通常の文字セットでは「独自」です

4

3 に答える 3

0

最初に、JSON 文字列 ( json )の開始と終了から一重引用符を削除する必要があります。これにより、JSON は有効な json になり、次のようにする必要があります。

json= json.substring(1, json.length()-1);

その後、次のようにします:

JSONObject oJsonObject = new JSONObject(json);
JSONArray  oJsonArray   = oJsonObject.getJSONArray("sentences");

for(int i=0; i<oJsonArray.length(); i++)
{
    JSONObject oJsonObject1 = oJsonArray.getJSONObject(i);
    String transValue = oJsonObject1 .getString("trans");
}
于 2013-08-14T12:04:05.370 に答える
0

jsonObj がすでにある場合は、次のことを行うだけです。

  try {
// Getting Array of Sentences
sentences = json.getJSONArray("sentences");

// looping through All Contacts
for(int i = 0; i < sentences.length(); i++){
    JSONObject c = sentences.getJSONObject(i);

    // get the value from trans
    String trans = c.getString("trans");       
  //now you should save this string in an array 

}
 } catch (JSONException e) {
    e.printStackTrace();
    }
于 2013-08-14T11:54:40.973 に答える
0

これを試して

  JSONObject jsonObj = new JSONObject(json);
  JSONArray  sentences = jsonObj.getJSONArray("sentences");
  for(int i=0;i<sentences.length();i++){
    JSONObject number = sentences.getJSONObject(i);
    String transValue = number.getString("trans");
}
于 2013-08-14T11:52:07.273 に答える