2014-03-02 63 views
-2

为什么Android应用崩溃在线JSONObject jsonObject = (JSONObject) object;为什么Android应用崩溃

public class MainActivity extends ActionBarActivity { 


    private static final String TAG = "myLogs"; 
      String s = "{\"paramsArray\": [\"first\", 100]," 
       + "\"paramsObj\": {\"one\": \"two\", \"three\": \"four\"}," 
       + "\"paramsStr\": \"some string\"}"; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.parse_text_test); 

     TextView textViewTest = (TextView) findViewById(R.id.textView); 

     JSONParser parser = new JSONParser(); 
     try { 
      Object object = parser.parse(s); 
      JSONObject jsonObject = (JSONObject) object; // crash 
      //textViewTest.setText(jsonObject.toString()); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 


    } 
} 

回答

1

它就像你正在使用

org.json.simple.parser.JSONParser 

它创建

org.json.simple.JSONObject 

实例,而是试图将它们分配到

org.json.JSONObject 

类型变量在我看来。

修复您的依赖关系和import语句。

+0

所以你认为是ClassCastException? – Blackbelt

+0

@blackbelt我这么认为。 AFAIK Android SDK提供'org.json.JSONObject'类,但不包含OP似乎正在使用的'org.json.simple'类。 –