2017-12-13 3 views
-1

私はFirebase Firestoreを使用しています。 Firebaseからの応答がありますが、問題があります。Firebase FirestoreからJSONレスポンスを取得するには?

私はこの下にJSONレスポンスを取得:応答上記

String result = {name:date, order:1, required:true, type:date, placeholder:Expense Date} 

これは無効あるJsonLint

をチェックすると、私はまた、私は以下の私の応答を変換したい

String order = new JSONObject(responseConvert).getString("order"); 

を試してみましたこのように:

{ 
    "name": "date", 
    "order": "1", 
    "required": "true", 
    "type": "date", 
    "placeholder": "Expense Date" 
} 

私のJavaコード:

db.collection("details").addSnapshotListener(new EventListener<QuerySnapshot>() { 
      @Override 
      public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) { 

       Log.d("Snapshotssize","**** "+documentSnapshots.size()); 
       arrayList.clear(); 
       if (e!=null) 
       { 
        Log.d("FirebaseFirestoreExce","*** " + e.toString()); 
        return; 
       } 

       objects_array = new Object[documentSnapshots.size(); 

       for(DocumentChange documentChange : documentSnapshots.getDocumentChanges()) 
       { progressDialog.dismiss(); 

        switch (documentChange.getType()) 
        { 

         case ADDED:{ 
          documentChange.getDocument().getData().keySet().toArray(objects_array)); 
         /*object array into String array*/ 
         String[] stringArray = Arrays.copyOf(objects_array, objects_array.length, String[].class); 

           for (String val : stringArray) 
           { 

            String geoResponse = documentChange.getDocument().getData().get(val).toString(); 

            Log.d("Jsonrespone11111"+geoResponse); 

            String responseConvert = geoResponse.replace("=", ":"); 

            Log.d("Jsonrespone22222 "+responseConvert);          


           } 

         } 
        } 

      } 
     } 
} 
+0

あなたのデータベースからデータを取得する方法を共有してください。 –

+0

しかし、なぜあなたは 'JSONObject'を使用していますか? –

答えて

0

有効なJSONアンドロイドに無効なJSONを変換しますか?

String inputString = "name: date, order: 1, required: true, type: date, placeholder: Expense Date"; 
    StringBuilder validJson = new StringBuilder(); 
    validJson.append("{"); 
    String[] lineByLine = inputString.split(","); 
    for(int i =0; i< lineByLine.length; i++){ 
     String[] lineSplit = lineByLine[i].split(":"); 
     validJson.append('"').append(lineSplit[0].trim()).append('"').append(":").append('"').append(lineSplit[1].trim()).append('"').append(i==lineByLine.length-1?"}":","); 
    } 
    String finishedJSON = validJson.toString(); 
    System.out.println(finishedJSON); 

もっとreference

+0

これは適切な方法ではありませんが、やはりこれを試すことができます –

関連する問題