我這裏有一個代碼..這是com.firebase.client.FirebaseException:未能反彈鍵入JSON
main_menu.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
getData();
}
private void getData(){
String url = config.DATA_URL+a_username;
RequestQueue requestQueue = Volley.newRequestQueue(this);
Log.d(TAG,"MERGING URL AND NAME SUCCESS");
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showJSON(response);
Log.d(TAG,"SHOW JSON SUCCESS");
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(stringRequest);
}
private void showJSON(String response){
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(config.JSON_ARRAY);
JSONObject userid = result.getJSONObject(0);
id = userid.getString(config.KEY_ID).toString().trim();
Toast.makeText(getApplicationContext(),id,Toast.LENGTH_LONG).show();
Log.d(TAG,"GETTING ID SUCCESS");
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
protected void onStart(){
super.onStart();
real_id = id.toString();
mref = new Firebase("https://connection-4f6d8.firebaseio.com/"+real_id);
mref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String text = dataSnapshot.getValue(String.class);
if(text.equals("UNLOCKED")){
sendDataonWIfi("0");
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
Execption:
FATAL EXCEPTION: main Process: com.example.jaypeetan.mftis, PID: 32112com.firebase.client.FirebaseException: Failed to bounce to type
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:185)
at com.example.jaypeetan.mftis.main_menu$6.onDataChange(main_menu.java:290)
at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:56)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45) at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
at [Source: [email protected]; line: 1, column: 1]
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:575)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:46)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183) ... 13 more
我相信錯誤是關於JSON 我需要的是我的數據庫中的用戶ID whi ch是即時通知正確但問題是當我試圖連接在我的firebase它給了我這個錯誤..我試圖改變變量real_id值爲數字,它工作正常,但當它取決於JSON它給了我一個錯誤..請幫助我:d
real_id是int還是string? –
它與id爲 –
的字符串相同,爲什麼不使用新的firebase quires? –