我有数据库,其中有三个coloums(id(整数),startdate(文本),enddate(text),)。 我想阅读这些coloums的所有条目,将它们转换为Json并发送到web url。 我知道如何读取值但不知道如何从这些值中生成Json。 请任何编码帮助...
答案 0 :(得分:3)
以下是制作JSON对象的方法:
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", idValue);
jsonObject.put("startDate", endDateValue);
jsonObject.put("endDate", endDateValue);
您还可以通过执行以下操作将JSON作为String获取:
jsonObject.toString();
答案 1 :(得分:3)
你为什么不试试:
`
JSONObject object = new JSONObject();
try {
object.put("id", id);
object.put("startDate", startDate);
object.put("endDate", endDate);
} catch (JSONException e) {
e.printStackTrace();
}`
然后通过http post发送json对象 `
HttpClient hc = new DefaultHttpClient();
String message;
HttpPost p = new HttpPost(url);
try {
message = object.toString();
p.setEntity(new StringEntity(message, "UTF8"));
p.setHeader("Content-type", "application/json");
HttpResponse resp = hc.execute(p);
if (resp != null) {
if (resp.getStatusLine().getStatusCode() == 204)
result = true;
}
Log.d("Status line", "" + resp.getStatusLine().getStatusCode());
} catch (Exception e) {
e.printStackTrace();
}`
所以,例如,如果你想创建一个包含从SQLite数据库获得的所有三元组的JSON对象,它将是:
String query = "SELECT *"+
"from "+TABLE_NAME;
Cursor c = db.rawQuery(query,new String[]{});
Log.d("query",query);
c.moveToFirst();
while(c.moveToNext()){
try {
int id = c.getInt(c.getColumnIndex("ID"));
String startDate = c.getString(c.getColumnIndex("START_DATE"));
String endDate = c.getString(c.getColumnIndex("END_DATE"));
object.put("id", id);
object.put("startDate", startDate);
object.put("endDate", endDate); }}
其中ID,START_DATE和END_DATE是DB中字段的对应名称 我现在无法测试我的代码,但我相信它有效
答案 2 :(得分:0)
JSONObject json = new JSONObject();
json.put("id", id);
json.put("startdate", startdate);
json.put("enddate", enddate);
答案 3 :(得分:0)
使用 jackson 库,您可以将地图或java bean转换为json字符串,或者从json字符串生成map或javabean。你可以编写一个util类:
public class JsonUtil {
private static final ObjectMapper MAPPER = new ObjectMapper();
public static String convertToJsonStr(Object model) throws IOException {
return MAPPER.writeValueAsString(model);
}
@SuppressWarnings("unchecked")
public static Map<String, Object> readFromStr(String content) throws IOException {
return readFromStr(content, Map.class);
}
public static <T> T readFromStr(String content, Class<T> clazz) throws IOException {
return MAPPER.readValue(content, clazz);
}
}