Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中将单个字符串转换为JsonArray?_Java_Android_Arrays_Json_String - Fatal编程技术网

Java 如何在android中将单个字符串转换为JsonArray?

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

我需要将字符串[]转换为JsonArray,但我不知道如何转换。我是android开发新手,我想在MySQL数据库中插入调用日志详细信息。所以,从android端我得到一个字符串,但我不知道如何将该字符串转换为Jsonarray。请帮我解决这个问题,谢谢

这是我的java代码

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应用程序不幸停止,请帮助解决此问题