-3

我有一个问题好几天都解决不了。

字符串行输入是从 PHP 服务器的 JSON 发送的 "{"name":"John", "Hobby":"Cycle"}"

android应用程序的代码

public void testFn()
{
    try {
        while ((line = reader.readLine()) != null) {
            String tmp = gson.toJson(line.toString());
            JSONObject jobj = (JSONObject)new JSONParser().parse(tmp);
            sb.append(jobj.get(1).toString() + "\n");
        }
    }catch ....
}

我想转换接收到的字符串并将其转换为 JSONObject / JSONArray,我可以将其检索或显示为 TextView 作为字符串格式。但我不断收到从 java.String 到 JSON.simple.JSONObject 的 CastException 错误。希望有人能启发我

4

3 回答 3

0

基本上现在我在这里编辑了我的代码

String line = "{"name":"John","Hobby":"Cycle"}";
Object obj=parser.parse(line);
JSONArray array=(JSONArray)obj;
JSONObject obj2 = (JSONObject)array.get(0);
System.out.println(obj2.get("name").toString());

对不起,我想出了一个办法。

Output:
John
于 2013-06-21T03:02:57.440 回答
0

尝试

String str = "{\"name\":\"John\", \"Hobby\":\"Cycle\"}";
//i wrote preceded "\" to very " because it is code format string, 
//not came from internet. You can pass direct response from PHP server
try {
    JSONObject json = new JSONObject(str);
    Log.d("Home",json.getString("name"));
    Log.d("Home",json.getString("Hobby"));
} catch (JSONException e1) {
    e1.printStackTrace();
}
于 2013-06-20T09:51:02.853 回答
0
class MyJsonObject{
  private String name;
  private String Hobby;
  MyJsonObject() {

  }
}

MyJsonObject obj = new MyJsonObject();
Gson gson = new Gson();
String json = gson.toJson(obj);  

(反序列化)

MyJsonObject obj2 = gson.fromJson(json, MyJsonObject.class);  
于 2013-06-20T09:56:57.187 回答