現在、私はアンドロイドデバイス用のwebserviceに取り組んでいます。デバイスがjsonデータをサーバー(tomcat8のjava webapp)にアップロードすると、データがdb (mysql)。ファイル内のすべてのデータをロードせずにJSON編集
私の問題は、データにはイメージが含まれており、アップロードファイルあたり約100MBになる可能性があるということです。画像は、他の情報とは別にアップロードすることはできません。
私はすべてのデータを1つのjsonに入れてアップロードする必要があります。
いくつかのjsonライブラリで完全にロードせずにファイルに直接データを追加することなく、jsonファイルにアクセスできるかどうか疑問に思っていました。
public static String toJson(Person person) {
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", person.getName());
jsonObject.put("surename", person.getSurname());
JSONObject jsonAdd = new JSONObject();
jsonAdd.put("address", person.getAddress().getAddress());
jsonAdd.put("city", person.getAddress().getCity());
jsonAdd.put("state", person.getAddress().getState());
jsonObject.put("address", jsonAdd);
JSONArray jsonArray = new JSONArray();
for(Person.ImageData pn : person.getImageData()) {
JSONObject jsonPhone = new JSONObject();
jsonPhone.put("id", pn.getId());
jsonPhone.put("base64", pn.getBase64());
jsonArray.put(jsonPhone);
}
jsonObject.put("imageData", jsonArray);
return jsonObject.toString();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
このような出力付き:すべてを持つ既存の人に
{
"imageData": [
{
"base64": "someimage",
"id": "11111"
}
],
"address": {
"state": "somewhere",
"address": "somewhere, 000",
"city": "somewhere city"
},
"surname": "sure",
"name": "last"
}
public class Person {
private String name;
private String surname;
private Address address;
private List<ImageData> data;
public class Address {
private String address;
private String city;
private String state;
}
public class ImageData {
private String id;
private String base64;
}
}
人は、このように生成されます。このクラスは、与えられた
例1つのImagedataを追加したいImageDataと入力すると、出力は次のようになります。
{
"imageData": [
{
"base64": "someimage",
"id": "11111"
},
{
"base64": "someimage",
"id": "2222"
}
],
"address": {
"state": "somewhere",
"address": "somewhere, 000",
"city": "somewhere city"
},
"surname": "sure",
"name": "last"
}
すべてをロードせずにファイルを直接編集することはできますか? imagedataコンテナを検索しますが、コンテンツ(IDとbase64)をロードしないで、コンテナに追加の要素(ID、ベース64)を追加するだけですか?