2017-02-08 1 views
0
{ 
"success": true, 
"message": { 
"user": { 
    "firstName": "aaa", 
    "lastName": "aaa", 
    "email": "[email protected]", 
    "role": 1, 
    "profileUrl": "" 
}, 
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjp7ImZpcnN0TmFtZSI6ImFhYSIsImxhc3ROYW1lIjoiYWFhIiwiZW1haWwiOiJ4eHhAZ21haWwuY29tIiwicm9sZSI6MSwicHJvZmlsZVVybCI6IiJ9LCJpYXQiOjE0ODY1MjMyOTAsImV4cCI6MTQ4NjUzNDczMH0.kFHji61mqqupMSNBL_ZLnaLbK1xmFxbD6MbWa_SPlyo", 
"enum": { 
    "_id": "5889d3f10893a7a42243998e", 
    "updatedAt": "2017-01-26T10:48:17.233Z", 
    "createdAt": "2017-01-26T10:48:17.233Z", 
    "__v": 0, 
    "mailCategories": [ 
    { 
     "color": [ 
     "Work", 
     "Document", 
     "Social", 
     "Advertising", 
     "Client" 
     ], 
     "value": [ 
     "#1ab394", 
     "#EF5352", 
     "#1c84c6", 
     "#23c6c8", 
     "#F8AC59" 
     ] 
    } 
    ], 
    "folders": [ 
    "Send", 
    "Draft" 
    ], 
    "uploadsImageTypes": [ 
    "jpg", 
    "jpeg", 
    "png", 
    "gif" 
    ], 
    "uploadsFileTypes": [ 
    "jpg", 
    "jpeg", 
    "docx", 
    "pdf", 
    "txt", 
    "ppt", 
    "png", 
    "gif" 
    ], 
    "workOrderStatus": { 
    "color": [ 
     "#A09580", 
     "#f8ac59", 
     "#41b0f6", 
     "#0d71b0", 
     "#1ab394", 
     "#067e47", 
     "#2819bc", 
     "#0d08f3", 
     "#ef0c34", 
     "#ef9aa9", 
     "#f2830b" 
    ], 
    "value": [ 
     "Draft", 
     "Requested", 
     "Requested Awaiting Approval", 
     "Assigned", 
     "Work In Progress", 
     "Ready", 
     "Done", 
     "Closed,Completed", 
     "Closed,Incompleted", 
     "On Hold", 
     "Open" 
    ] 
    }, 
    "priorities": { 
    "color": [ 
     "#0B7409", 
     "#CE9B9B", 
     "#7CC396", 
     "#CEBE99" 
    ], 
    "value": [ 
     "Hard Down", 
     "High", 
     "Medium", 
     "Low" 
    ] 
    }, 
    "categories": [ 
    "Equipment", 
    "Cranes", 
    "Delivery Vehicles", 
    "Rotating Spares" 
    ], 
    "projects": [ 
    "Vehicle New", 
    "System #7865", 
    "Book Shop", 
    "Site" 
    ], 
    "maintenanceTypes": { 
    "color": "#FFFFFF", 
    "bg_color": [ 
     "#1c84c6", 
     "#262626", 
     "#A09580", 
     "#ed5565" 
    ], 
    "value": [ 
     "Electrical", 
     "Damage", 
     "Safty", 
     "Broken" 
    ] 
    }, 
    "assets": [ 
    "Conveyor Belt 1", 
    "Cranes", 
    "Delivery Vehicles", 
    "Rotating Spares" 
    ], 
    "assignToUser": [ 
    1, 
    2, 
    4, 
    5, 
    6 
    ], 
    "roles": [ 
    "Admin", 
    "Manager", 
    "Technician", 
    "Customer", 
    "Supplier", 
    "Engineer", 
    "Guest" 
    ] 
} 
} 
} 

이 내가 문자열로 토큰을 추출 할 수 있습니다 어떻게 내 LoginActivity.java나는 안드로이드 포스트 발리를 사용하여 중첩 된 JSON 객체에서 데이터를 추출 할 수 없습니다

public class LoginActivity extends AppCompatActivity { 
EditText un, pw; 
ImageButton sbtn; 

SystemPreference systemPreference; 

String URL_POST = "http://10.183.183.45:6663/api/v1/" + "auth/authenticate"; 

private GoogleApiClient client; 

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

    un = (EditText) findViewById(R.id.login_username); 
    pw = (EditText) findViewById(R.id.login_password); 
    sbtn = (ImageButton) findViewById(R.id.signinbtn); 

    sbtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      VolleyPost(); 
     } 
    }); 
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
} 

private void VolleyPost() { 

    systemPreference = SystemPreference.getInstance(this.getApplicationContext()); 

    StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_POST, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      Log.d("response", String.valueOf(response)); 

      JSONObject jsonObject = null; 
      try { 
       JSONObject msgjson = new JSONObject(response); 
       String success = msgjson.getString("success"); 
       String message = msgjson.getString("message"); 

       JSONObject tokenObj = new JSONObject("token"); 
       String token = tokenObj.getString("token"); 

       if(msgjson.isNull(token)) { 
        String msg = msgjson.get("user").toString(); 
        Log.d("msg", msg); 
        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); 
       }else { 
        String msg = msgjson.get("message").toString(); 

        Log.d("msg", msg); 
        Toast.makeText(LoginActivity.this, "Authorized User", Toast.LENGTH_SHORT).show(); 
        Intent i = new Intent(LoginActivity.this, MenuActivity.class); 
        startActivity(i); 

       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.d("aaa", "aaa"); 
      Toast.makeText(LoginActivity.this, "Wrong password or username", Toast.LENGTH_SHORT).show(); 
     } 
    }) { 
     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String, String> params = new HashMap<String, String>(); 
      String email = un.getText().toString(); 
      String password = pw.getText().toString(); 
      params.put("email", email); 
      params.put("password", password); 

      return params; 
     } 
    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(stringRequest); 
} 

} 

입니까?

+0

오류 로그 게시 –

+0

내 대답을 확인하십시오. – Noorul

답변

0
JSONObject msgjson = new JSONObject(response); 
       String success = msgjson.getString("success"); 
       String message = msgjson.getString("message"); 

       JSONObject tokenObj = new JSONObject(message); //change to this 
       String token = tokenObj.getString("token"); 

아무 것도없는 json 개체를 만듭니다!

+0

@DmsMalithDisanayake 그러면 답을 표시해야합니다. :) –

0

당신은 getAsJsonPrimitive 방법을 사용할 수 있습니다

된 JSONObject msgjson = 새로운 된 JSONObject (응답); msgjson.getAsJsonPrimitive ("token"). getAsString();

0

이 시도

  JSONObject jObj=new JSONObject(response); 
      String success=jObj.getString("success"); 
      JSONObject objMsg=jObj.getJSONObject("message"); 

      /* get token */ 
      String token=objMsg.getString("token"); 

      /* get user data */ 
      JSONObject objUser=objMsg.getJSONObject("user"); 
      String firstName=objUser.getString("firstName"); 
      String lastName=objUser.getString("lastName"); 
      String email=objUser.getString("email"); 
0

토큰이 메시지 개체 그래서 내부 문자열입니다, 당신은 당신이 그것을보고있는 다음

JSONObject responseJSON = new JSONObject(response); 
JSONObject msgObject=responseJSON.getJSONObject("message"); 
String token=msgObject.getString("token"); 

을해야 할

{} this denotes Object 
[] this denotes array 
"" this denotes string 
관련 문제