2016-05-08 7 views
1

Чтобы инициализировать мой новый фрагмент, мне нужно отправить объект как простой. Эти поля он содержит:Android Parcelable с JsonObject

private String sessionId; 
private String status; 
private JSONObject typeAttributes; 
private JSONObject kindAttributes; 

Проблема в том, что JSONObject не parcelable. Если я просто использую метод writeValue в методе writeToParcel, я получаю недопустимую ошибку класса. Кроме того, JSONObject не является даже Serializable.

Кроме того, typeAttributes и kindAttributes являются динамическими, поэтому каждый раз, когда запускается мое приложение, у них разные поля с разными значениями.

Если кто знает, как его решить, пожалуйста, помогите.

ответ

4

Я бы воспользовался JSONObjecttoString(), чтобы вернуть String, который вы можете легко сэкономить на посылке.

Затем создать объект из Разделенного String, просто использовать JSONObjectconstructor, который принимает String, и он будет автоматически заполнять поля тех объектов, для вас.

+0

большое спасибо, я не знал, что JsonObject можно легко отличить от String и наоборот –

1

Я бы пошел с таким подходом.

1- Создать класс Pojo, который реализует сериализации

2- Построить объект этого класса

3- Отправить объект как serialazable один

public class POJO implements Serializable{ 
 
    private String sessionId; 
 
    private String status; 
 
    // private JSONObject typeAttributes; 
 
    // SUPPOSE THIS JSONObject CONTAINS TWO FIELDS AS NAME AND AGE SO I USE TWO MORE FILDS 
 
    String name; 
 
    String age; 
 

 
    //....... WRITE GETTERS AND SETTERS 
 

 
}

Дайте мне знать, если вам понадобится дополнительное объяснение для создания этого объекта POJO Inside activity, а затем отправьте его как сериализуемый

 Смежные вопросы

  • Нет связанных вопросов^_^