Java 如何在android中将单个字符串转换为JsonArray?
我需要将字符串[]转换为JsonArray,但我不知道如何转换。我是android开发新手,我想在MySQL数据库中插入调用日志详细信息。所以,从android端我得到一个字符串,但我不知道如何将该字符串转换为Jsonarray。请帮我解决这个问题,谢谢 这是我的java代码Java 如何在android中将单个字符串转换为JsonArray?,java,android,arrays,json,string,Java,Android,Arrays,Json,String,我需要将字符串[]转换为JsonArray,但我不知道如何转换。我是android开发新手,我想在MySQL数据库中插入调用日志详细信息。所以,从android端我得到一个字符串,但我不知道如何将该字符串转换为Jsonarray。请帮我解决这个问题,谢谢 这是我的java代码 public class MainActivity extends Activity { TextView textView; @Override protected void onCreate(Bundle saved
public class MainActivity extends Activity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.lv);
getCallDetails();
}
private void getCallDetails()
{
StringBuffer sb = new StringBuffer();
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null,null, null, strOrder);
int number1 = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type1 = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int duration1 = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
sb.append("Call Log :");
while (managedCursor.moveToNext())
{
final String number = managedCursor.getString(number1);
final String type2 = managedCursor.getString(type1);
final String date = managedCursor.getString(managedCursor.getColumnIndexOrThrow("date")).toString();
java.util.Date date1 = new java.util.Date(Long.valueOf(date));
final String duration = managedCursor.getString(duration1);
String type = null;
Log.e("abc",date.toString());
Log.e("abc",date1.toString());
final String fDate = date1.toString();
int callcode = Integer.parseInt(type2);
switch (callcode)
{
case CallLog.Calls.OUTGOING_TYPE:
type = "Outgoing";
break;
case CallLog.Calls.INCOMING_TYPE:
type = "Incoming";
break;
case CallLog.Calls.MISSED_TYPE:
type = "Missed";
break;
}
sb.append("\nPhone Number:--- " + number + "");
sb.append(" \nCall Type:--- " + type + " ");
sb.append("\nCall Date:--- " + date1 + "");
sb.append ("\nCall duration in sec :--- " + duration);
sb.append("\n----------------------------------");
class getCallDetails extends AsyncTask<Void,Void,String>
{
@Override
protected String doInBackground(Void... params)
{
HashMap<String,String> param = new HashMap<String, String>();
param.put(Connect.KEY_NUMBER,number);
param.put(Connect.KEY_TYPE,type2);
param.put(Connect.KEY_DATE,fDate);
param.put(Connect.KEY_DURATION,duration);
RequestHandler rh = new RequestHandler();
String res = rh.sendPostRequest(Connect.URL_ADD, param);
return res;
}
}
getCallDetails idata = new getCallDetails();
idata.execute();
}
managedCursor.close();
textView.setText(sb);
}
}
公共类MainActivity扩展活动{
文本视图文本视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(textView)findViewById(R.id.lv);
getCallDetails();
}
私有void getCallDetails()
{
StringBuffer sb=新的StringBuffer();
字符串strOrder=android.provider.CallLog.Calls.DATE+“DESC”;
游标managedCursor=managedQuery(CallLog.Calls.CONTENT_URI,null,null,null,strOrder);
int number1=managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type1=managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int duration1=managedCursor.getColumnIndex(CallLog.Calls.DURATION);
某人追加(“通话记录:”);
while(managedCursor.moveToNext())
{
最终字符串编号=managedCursor.getString(编号1);
最终字符串类型2=managedCursor.getString(类型1);
最终字符串日期=managedCursor.getString(managedCursor.getColumnIndexOrThrow(“日期”)).toString();
java.util.Date date1=新的java.util.Date(Long.valueOf(Date));
最终字符串持续时间=managedCursor.getString(持续时间1);
字符串类型=null;
Log.e(“abc”,date.toString());
Log.e(“abc”,date1.toString());
最后一个字符串fDate=date1.toString();
int callcode=Integer.parseInt(类型2);
开关(呼叫码)
{
案例CallLog.Calls.OUTGOING_类型:
type=“传出”;
打破
案例CallLog.Calls.INCOMING_类型:
type=“传入”;
打破
案例CallLog.Calls.MISSED_类型:
type=“Missed”;
打破
}
sb.追加(“\n电话号码:--”+号码+”);
sb.append(“\n调用类型:--”+Type+”);
sb.追加(“\n调用日期:--”+date1+”);
sb.append(“\n以秒为单位的调用持续时间:--”+持续时间);
sb.追加(“\n---------------------------------------------------”);
类getCallDetails扩展了AsyncTask
{
@凌驾
受保护字符串doInBackground(无效…参数)
{
HashMap param=新的HashMap();
参数put(连接键号、编号);
参数输入(连接键类型,类型2);
参数put(连接键日期,fDate);
参数put(连接键持续时间,持续时间);
RequestHandler rh=新的RequestHandler();
String res=rh.sendPostRequest(Connect.URL\u ADD,param);
返回res;
}
}
getCallDetails idata=新建getCallDetails();
idata.execute();
}
managedCursor.close();
textView.setText(sb);
}
}
这很简单。您可以使用JSONArray类的构造函数之一
JSONArray jArr = new JSONArray(strArr)
其中strArr是字符串数组
更多信息:这很简单。您可以使用JSONArray类的一个构造函数
JSONArray jArr = new JSONArray(strArr)
其中strArr是字符串数组
更多信息:试试这个
// Create JSONArray
JSONArray jArray = new JSONArray();
while (managedCursor.moveToNext())
{
final String number = managedCursor.getString(number1);
final String type2 = managedCursor.getString(type1);
final String date = managedCursor.getString(managedCursor.getColumnIndexOrThrow("date")).toString();
Date date1 = new Date(Long.valueOf(date));
final String fDate = date1.toString();
final String duration = managedCursor.getString(duration1);
String type = null;
// Create JSONObject
JSONObject item = new JSONObject();
// add the items to JSONObject
item.put("number", number);
item.put("type2", type2);
item.put("fDate", fDate);
item.put("duration", duration);
// add the JSONObject to JSONArray
jArray.put(item);
}
managedCursor.close();
System.out.println(jArray.toString());
试试这个
// Create JSONArray
JSONArray jArray = new JSONArray();
while (managedCursor.moveToNext())
{
final String number = managedCursor.getString(number1);
final String type2 = managedCursor.getString(type1);
final String date = managedCursor.getString(managedCursor.getColumnIndexOrThrow("date")).toString();
Date date1 = new Date(Long.valueOf(date));
final String fDate = date1.toString();
final String duration = managedCursor.getString(duration1);
String type = null;
// Create JSONObject
JSONObject item = new JSONObject();
// add the items to JSONObject
item.put("number", number);
item.put("type2", type2);
item.put("fDate", fDate);
item.put("duration", duration);
// add the JSONObject to JSONArray
jArray.put(item);
}
managedCursor.close();
System.out.println(jArray.toString());
您能告诉我如何在我的java代码中创建字符串数组吗?创建ArrayList,如下所述:。然后用这个:嘿@Secret\u火山,如果它解决了你的问题,就接受答案。:)您能告诉我如何在我的java代码中创建字符串数组吗?创建ArrayList,如下所述:。然后用这个:嘿@Secret\u火山,如果它解决了你的问题,就接受答案。:)只有你能做到。我已经给你指路了。了解API如何接受数据并根据数据创建数据。祝你好运使用
try catch
块处理异常。@Neeraj在处理异常后,应用程序不幸停止,请提供帮助解决此问题,只有您可以这样做。我已经给你指路了。了解API如何接受数据并根据数据创建数据。祝你好运使用try catch
块处理异常。@处理异常后,Neeraj应用程序不幸停止,请帮助解决此问题