Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
TeslaPro
0 / 0 / 0
Регистрация: 04.07.2014
Сообщений: 3
#1

Осуществить парсинг JSON с помощью готового макета "VKApiMessage" - Программирование Android

13.08.2014, 01:53. Просмотров 861. Ответов 1
Метки нет (Все метки)

Я никак не могу осуществить парсинг JSON с помощью готового макета "VKApiMessage".

Пример JSON: https://vk.com/dev/messages.getDialogs
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
response: {
count: 3132,
unread_dialogs: 41,
items: [{
unread: 1,
message: {
id: 360658,
date: 1394122091,
out: 0,
user_id: 85635407,
read_state: 0,
title: ' ... ',
body: 'hey'
}
}]
}


VKApiMessege: https://github.com/VKCOM/vk-android-...piMessage.java

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
public class VKApiMessage extends VKApiModel implements Identifiable, android.os.Parcelable {
 
    /**
     *  Message ID. (Not returned for forwarded messages), positive number
     */
    public int id;
 
    /**
     * For an incoming message, the user ID of the author. For an outgoing message, the user ID of the receiver.
     */
    public int user_id;
 
    /**
     *  Date (in Unix time) when the message was sent.
     */
    public long date;
 
    /**
     * Message status (false — not read, true — read). (Not returned for forwarded messages.)
     */
    public boolean read_state;
 
    /**
     * Message type (false — received, true — sent). (Not returned for forwarded messages.)
     */
    public boolean out;
 
    /**
     * Title of message or chat.
     */
    public String title;
 
    /**
     * Body of the message.
     */
    public String body;
 
    /**
     * List of media-attachments;
     */
    public VKAttachments attachments = new VKAttachments();
 
    /**
     * Array of forwarded messages (if any).
     */
    public VKList<VKApiMessage> fwd_messages;
 
    /**
     *  Whether the message contains smiles (false — no, true — yes).
     */
    public boolean emoji;
 
    /**
     * Whether the message is deleted (false — no, true — yes).
     */
    public boolean deleted;
 
    public VKApiMessage(JSONObject from) throws JSONException
    {
        parse(from);
    }
    /**
     * Fills a Message instance from JSONObject.
     */
    public VKApiMessage parse(JSONObject source) throws JSONException {
        id = source.optInt("id");
        user_id = source.optInt("user_id");
        date = source.optLong("date");
        read_state = ParseUtils.parseBoolean(source, "read_state");
        out = ParseUtils.parseBoolean(source, "out");
        title = source.optString("title");
        body = source.optString("body");
        attachments .fill(source.optJSONArray("attachments"));
        fwd_messages = new VKList<VKApiMessage>(source.optJSONArray("fwd_messages"), VKApiMessage.class);
        emoji = ParseUtils.parseBoolean(source, "emoji");
        deleted = ParseUtils.parseBoolean(source, "deleted");
        return this;
    }
 
    /**
     * Creates a Message instance from Parcel.
     */
    public VKApiMessage(Parcel in) {
        this.id = in.readInt();
        this.user_id = in.readInt();
        this.date = in.readLong();
        this.read_state = in.readByte() != 0;
        this.out = in.readByte() != 0;
        this.title = in.readString();
        this.body = in.readString();
        this.attachments = in.readParcelable(VKAttachments.class.getClassLoader());
        this.fwd_messages = in.readParcelable(VKList.class.getClassLoader());
        this.emoji = in.readByte() != 0;
        this.deleted = in.readByte() != 0;
    }
 
    /**
     * Creates empty Country instance.
     */
    public VKApiMessage() {
 
    }
 
    @Override
    public int getId() {
        return id;
    }
 
    @Override
    public int describeContents() {
        return 0;
    }
 
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(this.id);
        dest.writeInt(this.user_id);
        dest.writeLong(this.date);
        dest.writeByte(read_state ? (byte) 1 : (byte) 0);
        dest.writeByte(out ? (byte) 1 : (byte) 0);
        dest.writeString(this.title);
        dest.writeString(this.body);
        dest.writeParcelable(attachments, flags);
        dest.writeParcelable(this.fwd_messages, flags);
        dest.writeByte(emoji ? (byte) 1 : (byte) 0);
        dest.writeByte(deleted ? (byte) 1 : (byte) 0);
    }
 
    public static Creator<VKApiMessage> CREATOR = new Creator<VKApiMessage>() {
        public VKApiMessage createFromParcel(Parcel source) {
            return new VKApiMessage(source);
        }
 
        public VKApiMessage[] newArray(int size) {
            return new VKApiMessage[size];
        }
    };
}
Как осуществить парсинг JSONObject?
Вот часть моего кода, но не работает:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void JSON(JSONObject JsonObject){
        TextView text = (TextView)findViewById(R.id.textnew);
        try{
            String v = JsonObject.toString();
 
            VKApiMessage de = new VKApiMessage().parse(JsonObject);
            String a = de.body;
 
            VKApiMessage df = new VKApiMessage(JsonObject).parse(JsonObject);
            String b = df.body;
 
            VKApiMessage dj = new VKApiMessage();
            String c = dj.parse(JsonObject).body;
 
            VKApiMessage dh = new VKApiMessage(JsonObject);
            String d = dh.parse(JsonObject).body;
 
            text.setText("1: " + a + "\n2: " + b + "\n3: " + c + "\n4: " + d + "\nOriginal: " + v);
            
        }catch (JSONException e){throw new RuntimeException(e);
        }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2014, 01:53     Осуществить парсинг JSON с помощью готового макета "VKApiMessage"
Посмотрите здесь:

Парсинг JSON - Программирование Android
Доброй ночи! Есть задача распарсить JSON не зная изначально сколько и чего там находится, а так же не зная ни имен ни другой инфы, кроме...

Парсинг json - Программирование Android
Здравствуйте! Имеется такой json код: { &quot;data&quot;: }И я его обрабатываю так: JSONArray urls = json.getJSONArray(&quot;data&quot;); Тогда, как мне...

Парсинг JSON'а - Программирование Android
Здравствуйте! Недавно я на php+msql и Eclipse пробовал этот пример с сайта...

Парсинг JSON - Программирование Android
Дали задание Мне надо воссоздать структуру JSON в сообственных объектах. Т.е. парсить надо не в String (например), а сделать вот что: -...

Парсинг Json - Программирование Android
Здравствуйте подcкажите как сделать: нужно данные из Json засунуть в массив, чтобы его дальше передавать по активностям. Json парсится в...

Парсинг JSON - Программирование Android
Привет знатокам своего дела, у меня уже крик души! Какой час не выходит распарсить такой JSON ...

Парсинг JSON-файла - Программирование Android
Есть файл со следующим содержимым: т.е. только со значениями! Как его распарсить?? Этот способ не работает: void...

Парсинг JSON объекта - Программирование Android
Здравствуйте, программисты! Помогите, пожалуйста, с решением задачи: Есть json-объект такого вида: {&quot;map&quot;: {&quot;firstname&quot;: null,...

Json http парсинг. Массивы - Программирование Android
Здравствуйте. Нужно спарсить json данные. Есть php файл, который генерирует json код: http://silicon-valley-rus.com/server/get_json.php ...

Парсинг JSON ответа от сервера - Программирование Android
Здравствуйте друзья, давно не заходил к вам в гости. Столкнулся с таким интересным (интересно построенным) ответом от сервера в формате...

Парсинг большого объема JSON данных - Программирование Android
Столкнулся со следующей проблемой. С сервера приходит большой объем JSON данных (несколько мб), и когда я пытаюсь преобразовать полученные...

Парсинг json, многомерный массив с разными типами данных - Программирование Android
Сервер отдает массив вида: $arr $arr Если делать так: JSONObject jObj = new JSONObject(outOfServer); jObj.getJSONObject(0); То...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grantemon
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 1
19.05.2015, 13:07     Осуществить парсинг JSON с помощью готового макета "VKApiMessage" #2
Решил проблему так:


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import com.vk.sdk.api.model.VKApiMessage;
import com.vk.sdk.api.model.VKList;
 
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
public class VkMessageArray extends VKList<VKApiMessage> {
 
    private VKList<VKApiMessage> messagesFromRequest;
    String jsonString;
 
 
    VkMessageArray(String jsonString) throws JSONException {
       this.jsonString = jsonString;
        messagesFromRequest = new  VKList<VKApiMessage>();
    }
 
    VKList<VKApiMessage> parseStr() throws JSONException {
        JSONObject jsonObj1 = new JSONObject(jsonString);
        JSONArray messagesArray = jsonObj1.getJSONObject("response").getJSONArray("items");
 
        for (int i = 0; i<messagesArray.length(); i++ ){
            messagesFromRequest.add(new VKApiMessage(messagesArray.getJSONObject(i)));
        }
 
        return messagesFromRequest;
 
    }
}
Yandex
Объявления
19.05.2015, 13:07     Осуществить парсинг JSON с помощью готового макета "VKApiMessage"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru