Запись в файл JSON - PullRequest
       1

Запись в файл JSON

1 голос
/ 26 апреля 2020

Я работаю над приложением android, использующим файл json для хранения данных, используемых приложением. У меня есть Json файл в папке ресурсов, включая один объект «растения». В файле Dashboard. java я хотел бы добавить объект в файл json. Я попытался это с помощью функции put (), но я не пишу в реальном файле. Панель инструментов. java:

            String name = intent.getStringExtra(AddAPlant.EXTRA_TEXT1);
            String description = intent.getStringExtra(AddAPlant.EXTRA_TEXT2);
            String url = intent.getStringExtra(AddAPlant.EXTRA_TEXT3);

            JSONObject jsonObj= new JSONObject();

            try {
                jsonObj.put("name", name);
                jsonObj.put("description", description);
                jsonObj.put("cameralink", url);

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            plantArray = new JSONArray();
            plantArray.put(jsonObj);

Json Файл, расположенный в папке активов:

{
  "plants": [
    {
      "name": "Pepper",
      "decription": "This is a big plant",
      "CameraLink": "https://messir.uni.lu/bicslab/blab-cam1-snapshots/gallery-images/latest.png"
    },
    {
      "name": "Tomatoe",
      "decription": "This is a big plant",
      "CameraLink": "https://messir.uni.lu/bicslab/blab-cam2-snapshots/gallery-images/latest.png"
    },
    {
      "name": "Small Tomato",
      "decription": "It needs a lot of water",
      "CameraLink": "https://messir.uni.lu/bicslab/blab-cam3-snapshots/gallery-images/latest.png"
    }
  ]
}

Желаемый вывод:

{
  "plants": [
    {
      "name": "Pepper",
      "decription": "This is a big plant",
      "CameraLink": "https://messir.uni.lu/bicslab/blab-cam1-snapshots/gallery-images/latest.png"
    },
    {
      "name": "Tomatoe",
      "decription": "This is a big plant",
      "CameraLink": "https://messir.uni.lu/bicslab/blab-cam2-snapshots/gallery-images/latest.png"
    },
    {
      "name": "Small Tomato",
      "decription": "It needs a lot of water",
      "CameraLink": "https://messir.uni.lu/bicslab/blab-cam3-snapshots/gallery-images/latest.png"
    }, 
    {
      "name": name,
      "decription": description,
      "CameraLink": url

  ]
}

1 Ответ

1 голос
/ 26 апреля 2020

я не думаю, что можно писать в / assets во время выполнения проверить этот ответ

попробовать использовать спецификацию приложения c файлы документы

Чтобы внести изменения в JSON. Чтение из файла (строковые данные) и инициализация JSONobject.

JSONObject obj = новый JSONObject ("строка из вашего файла")

  JSONObject jsonObject = new JSONObject("data from file");
  JSONArray jsonArray =  jsonObject.getJSONArray("plants");

  JSONObject jsonObj = new JSONObject();
  jsonObj.put("name", name);
  jsonObj.put("description", description);
  jsonObj.put("cameralink", url);

  jsonArray = jsonArray.put(jsonObj);
  jsonObject = jsonObject.put("plants", jsonArray);

  //convert json object to string
  String data = jsonObject.toString();

  FileOutputStream fout = context.openFileOutput(filename, Context.MODE_PRIVATE);
  fout.write(data.getBytes());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...