我有一个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
。感谢。
答案 0 :(得分:2)
对于列表中的每个项目,您需要执行以下操作:
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
答案 1 :(得分:1)
您只是想要创建具有这些值的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);
答案 2 :(得分:1)
你可以试试这个
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();
}
答案 3 :(得分:1)
对于新鲜的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。