创建JSON文件时如何使用Android Studio上编写的JSON数组?

时间:2018-07-24 17:49:31

标签: javascript android json

我正在制作一个应用程序,该应用程序从用户(姓名,姓氏等)获取数据,并将数据保存在JSON文件中。我要做的是从用户那里获取数据之后,将它们插入字符串数组并将字符串数组转换为JSON数组。这是代码:

public void toJSON(){

  try {
    JSONArray List = new JSONArray();
    for (int j = 0; j < 10; j++) {
      List.put(ad[j]);
      List.put(soyad[j]);
      List.put(sehir[j]);
      System.out.print(List.toString(1));
    }
  } catch (JSONException e) {
    e.printStackTrace();
  }

}

我必须创建一个JSON文件,但是我不知道在用户输入数据后如何向其中添加数据。

2 个答案:

答案 0 :(得分:0)

您可能应该研究其他持久性方法,例如共享首选项或Sql。话虽这么说,但我不清楚您的实际问题是什么,或者您尝试解决的问题。

答案 1 :(得分:0)

这是将数据放入JSONArray的方式。

    JSONArray array = new JSONArray();
    JSONObject object = new JSONObject();
    try {
        object.put("query", "ran 3 miles");
        object.put("gender", "female");
        object.put("weight_kg", 72.5);
        object.put("height_cm", 167.64);
        object.put("age", 30);
        array.put(object);
    } catch (JSONException e) {
        e.printStackTrace();
    }

这将打印

  

[{“性别”:“女性”,“体重”:72.5,“身高”:167.64,“查询”:“跑了3英里”,“年龄”:30}]

如果您想使用列表<> ...,请执行此操作。

    JSONArray array = new JSONArray();
    List<String> list = new ArrayList<>();
    JSONObject object = new JSONObject();
    try {
        object.put("age", 5);
        object.put("name", "bill");
        list.add("string1");
        list.add("string2");
        object.put("strings", list);
        array.put(object);
    } catch (JSONException e) {
        e.printStackTrace();
    }

这将打印以下内容:

  

[{“字符串”:[“字符串1”,“字符串2”],“名称”:“帐单”,“年龄”:5}]

把你刚刚学到的东西放得更深。

比如说,您有一个名字和电子邮件编辑文本。

EditText name = findViewById(R.id.name);
EditText email = findViewById(R.id.email);

您有一个onclick侦听器,也许是“保存”按钮。录音时,您需要从这些编辑文本中获取信息。

... // clicked save
String nameString = name.getText().toString().trim();
String emailString = email.getText().toString().trim();
// Create your json file.

    JSONArray array = new JSONArray();
    JSONObject object = new JSONObject();
    String nameString = "john"; // dont need this, this is from the edit text (example)
    String emailString = "email@email.com"; // dont need this, this is from the edit text (example)
    try {
        object.put("name", nameString);
        object.put("email", emailString);
        array.put(object);
        System.out.println(array);
    } catch (JSONException e) {
        e.printStackTrace();
    }

这将打印出来...

  

[{“ name”:“ john”,“ email”:“ email@email.com”}]

将字符串列表转换为JSONArray:

Helper方法:

public static JSONArray convertToJSON (List<String> list) {
    JSONArray array = new JSONArray();
    array.put(list);
    return array;
}

代码:

List<String> list = new ArrayList<>();

    list.add("string1");
    list.add("string2");
    list.add("string3");
    list.add("string4");
    list.add("string5");
    list.add("string6");
    list.add("string7");
    list.add("string8");

    System.out.println(convertToJSON(list));

结果

  

[[“” string1“,” string2“,” string3“,” string4“,” string5“,” string6“,” string7“,” string8“]]