当前位置: 首页 > 面试题库 >

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

万坚壁
2023-03-14
问题内容

我需要将String
[]转换为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);

    }
  }

问题答案:

试试这个,

// 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());


 类似资料:
  • 问题内容: 我无法在Android中将字符串转换为UTF-8。请帮我!! 结果: 但是“ ”应该编码为“ ” 问题答案: 在http://developer.android.com/reference/java/net/URLEncoder.html中,您可以了解到您使用的已弃用,应该使用 所以应该做到这一点。

  • 问题内容: 我有一个字符串。我希望它成为“ Uri”,这样我就可以与 如何将Songchoice转换为Uri? 问题答案: 这是文档http://developer.android.com/reference/android/net/Uri.html#parse%28java.lang.String%29

  • 我想将字符串转换为int。 例如: 如果是,则应将其转换为与相同的 为什么我需要这个。因为我要将unicode int转换为表情符号,所以我使用的是这段代码。 你能让我知道我该怎么做吗?

  • 我想用json字符串做一个数组,但不知道...如果url中的json代码为:

  • 我正在做一个应用程序,使用API提供数据与时间戳。时间戳如下所示: 如何将这种格式的日期(Tue Jul 13 00:00:00 CEST 2010)转换为Java日期(字符串来自alfresco属性) 用java将字符串转换为日期

  • 问题内容: 我正在阅读有关python的新f字符串的 博客 ,它们看起来很整洁。但是,我希望能够从字符串或文件中加载f字符串。 我似乎找不到任何执行此操作的字符串方法或其他函数。 从上面我的链接中的示例: 但是,如果我有琴弦怎么办?我希望能够像这样: 事实证明,我已经可以执行类似的操作并获得性能提高。即: 问题答案: f字符串是代码。不仅以安全的方式(当然,字符串文字就是代码),而且以危险的任意代