Android 表单数据到 JSONObjects

Android Form data to JSONObjects

我有一个 Android 表单可以从用户那里获取数据。我将所有数据捆绑在一起。但我需要有关如何将捆绑包存储到 JSONObjects 的帮助。下面的代码获取数据并将其存储到 Bundle

    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
    }

下面的代码从包中获取数据。

    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);
    }

}

所以请帮助我如何将其放入 JSONObjects。谢谢。

你的意思是你想用这些值创建一个 JSONObject 吗? 你试过这个吗:

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

就是这样,您现在有了一个 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);

对于列表中的每个项目,您需要执行如下操作:

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();
}

另一种方式是使用gson,给定item对象,只需要调用

String jsonString = gson.toJson(item)

这是 Gson 的开发者指南 https://sites.google.com/site/gson/gson-user-guide

你可以试试这个

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();
   }

对于新的 JSONObject 很简单..试试这个

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);

现在您可以在 logcat 中看到 jsonString。