2016-04-20 6 views
2

Ich habe ein Android-Formular, das Daten von einem Benutzer erhält. Ich habe alle Daten in einem Bündel. Aber ich brauche Hilfe, wie man das Bündel in JSONObjects speichert. Der Code wird unten die Daten und speichert sie in einem BundleAndroid Form Daten zu JSONObjects

Fragment data = new Fragment(); 
    Bundle itembundle =new Bundle();   
    itembundle.putString("title",title.getText().toString()); 
    itembundle.putString("subject",subject.getText().toString()); 
    itembundle.putString("content", content.getText().toString()); 
    itembundle.putString("source", source.getText().toString()); 
    if (title.getText()!=null && subject.getText() != null&&  content.getText()!= null && source.getText()!= null){ 
     data.setArguments(itembundle); 
     title.setText(""); 
     subject.setText(""); 
     content.setText(""); 
     source.setText(""); 
    } else{ 
      //code to throw exception of an empty form element 
    } 

Und der folgende Code erhält die Daten aus dem Bündel.

public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Bundle getData = this.getArguments(); 
    if (getArguments()!=null){ 
     item.setItemTitle((String) getData.getCharSequence("title")); 
     item.setItemContent((String) getData.getCharSequence("subject")); 
     item.setItemDescription((String) getData.getCharSequence("content")); 
     itemList.add(item); 
    } 

} 

So helfen Sie mir bitte, wie diese JSONObjects in ein setzen. Vielen Dank.

+0

Was brauchen Sie eigentlich? Verwenden Sie JSONObject von Bundle oder beide verwenden möchten. –

+0

Ich bin wirklich neu in Android. Also habe ich zuerst mit dem Bundle angefangen. Also ich möchte wissen, wie man JSONObject verwendet, um es an das Web zu senden. – Jeremiah

+0

@ Jeremiah Wenn Sie es an das Web senden möchten, erstellen Sie JSONObject, wie ich es in meiner Antwort gezeigt habe, und konvertieren Sie es in String, und Sie können es an das Web senden. –

Antwort

1

Wollen Sie einfach ein JSONObject mit diesen Werten erstellen? Haben Sie versucht, dies:

JSONObject info = new JSONObject(); 
try{ 
    info.put("title",getData.getCharSequence("title")); 
    info.put("subject",getData.getCharSequence("subject"));); 
}catch(JSONException e){ 
    e.printStackTrace(); 
} 

Das ist es, haben Sie jetzt eine JSONObject.

JSONObject info1 = new JSONObject(); 
info1.put("firstName","newFirstName"); 
info1.put("lastName","newLastName"); 

JSONObject info2 = new JSONObject(); 
info2.put("firstName","newFirstName"); 
info2.put("lastName","newLastName"); 

JSONArray myArray = new JSONArray(); 
myArray.put(info1); 
myArray.put(info2); 

JSONObject newObj = JSONObject(); 
newObj.put(myArray); 
+0

Ich verstehe wirklich nicht die öffentliche Methode 'info.add(),' ist es eine öffentliche Methode in JSONObjects? – Jeremiah

+0

Sorry, ich habe es mit der 'ArrayList' vermasselt. In JSON haben wir 'Put' Methode. Ich habe meine Antwort bearbeitet –

2

Für jedes Element in der Liste, die Sie einige, wie dies zu tun::

Sie können auch eine Reihe von Informationen wie folgt erstellen

JSONObject jsonObj = new JSONObject(); 
try { 
    jsonObj.put("title", item.getItemTitle()); 
    jsonObj.put("content", item.getItemContent()); 
    jsonObj.put("description", item.getItemDescription()); 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Ein anderer Weg Gson zu verwenden ist, angesichts der Item-Objekt, müssen Sie nur

String jsonString = gson.toJson(item) 

Hier wird der Entwicklerleitfaden für Gson ist nennen https://sites.google.com/site/gson/gson-user-guide

1

können Sie versuchen, diese

try 
    { 

     JSONObjects json =new JSONObjects(); 
     json.put(Key,value); 
     json.put(Key,value); 
     //and pass the data 
     Bundle itembundle =new Bundle(); 
     itembundle.putString("items",json.toString()); 


    //and get data 

    JSONObjects json=new JSONObjects(getArguments().getString("items")); 
    String title=json.getString(Key); 



    }catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
1

Für frische JSONObject seine einfache .. versuchen, diese

JSONObject jsonObject = new JSONObject(); 
try{ 

jsonObject.put("key","value"); 
........ 
//for your case it would be like this 
jsonObject.put("title",title.getText().toString()); 


}catch(JSONException ex){ 
ex.printStackTrace(); 
} 

String jsonString = jsonObject.toString(); 
Log.e("json",jsonString); 

Jetzt können Sie die jsonString in Ihrem logcat zu sehen.