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。
我有一个 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。