@@ -160,4 +160,152 @@ videoView.setVideoPath(video);
160
160
MediaController mediaController = new MediaController (getContext());
161
161
videoView. setMediaController(mediaController);
162
162
videoView. requestFocus();
163
- ```
163
+ ```
164
+
165
+ ## 序列化与反序列化:JSON
166
+
167
+ JSONObject 和 JSONArray 是在处理 JSON 数据时使用的两种基本数据结构。它们是轻量级的,并且通常用于在 Web 服务和移动应用之间传输数据。在 Android 开发中,这两个类通常由 ` org.json ` 库提供,这个库不是 Android 标准库的一部分,因此需要单独添加到项目中。
168
+
169
+ ### JSONObject
170
+
171
+ JSONObject 是一个映射表,用来存储键值对,其中键是字符串,值可以是以下类型之一:
172
+
173
+ - ` String `
174
+ - ` Number `
175
+ - ` JSONObject `
176
+ - ` JSONArray `
177
+ - ` Boolean `
178
+ - ` null `
179
+
180
+ ** 基本用法** :
181
+
182
+ 1 . ** 创建 JSONObject** :
183
+
184
+ ``` java
185
+ JSONObject jsonObject = new JSONObject ();
186
+ ```
187
+
188
+ 2 . ** 添加数据** :
189
+
190
+ ``` java
191
+ jsonObject. put(" key" , " value" );
192
+ jsonObject. put(" key2" , 123 );
193
+ jsonObject. put(" key3" , anotherJsonObject);
194
+ ```
195
+
196
+ 3 . ** 获取数据** :
197
+
198
+ ``` java
199
+ String value = jsonObject. getString(" key" );
200
+ int number = jsonObject. getInt(" key2" );
201
+ JSONObject jobj = jsonObject. getJSONObject(" key3" );
202
+ ```
203
+
204
+ 4 . ** 遍历 JSONObject** :
205
+
206
+ ``` java
207
+ Iterator<String > keys = jsonObject. keys();
208
+ while (keys. hasNext()) {
209
+ String key = keys. next();
210
+ Object value = jsonObject. get(key);
211
+ // 处理 key 和 value
212
+ }
213
+ ```
214
+
215
+ ### JSONArray
216
+
217
+ JSONArray 是一个列表,用于存储有序的值集合。与 JSONObject 类似,JSONArray 中的值也可以是字符串、数字、布尔值、另一个 JSONObject 或 JSONArray。
218
+
219
+ ** 基本用法** :
220
+
221
+ 1 . ** 创建 JSONArray** :
222
+
223
+ ``` java
224
+ JSONArray jsonArray = new JSONArray ();
225
+ ```
226
+
227
+ 2 . ** 添加数据** :
228
+
229
+ ``` java
230
+ jsonArray. put(" value1" );
231
+ jsonArray. put(123 );
232
+ jsonArray. put(anotherJsonObject);
233
+ jsonArray. put(anotherJsonArray);
234
+ ```
235
+
236
+ 3 . ** 获取数据** :
237
+
238
+ ``` java
239
+ String value = jsonArray. getString(0 );
240
+ int number = jsonArray. getInt(1 );
241
+ JSONObject jobj = jsonArray. getJSONObject(2 );
242
+ JSONArray jarray = jsonArray. getJSONArray(3 );
243
+ ```
244
+
245
+ 4 . ** 访问长度** :
246
+
247
+ ``` java
248
+ int length = jsonArray. length();
249
+ ```
250
+
251
+ 5 . ** 遍历 JSONArray** :
252
+
253
+ ``` java
254
+ for (int i = 0 ; i < jsonArray. length(); i++ ) {
255
+ Object value = jsonArray. get(i);
256
+ // 处理 value
257
+ }
258
+ ```
259
+
260
+ ### 示例代码
261
+
262
+ 以下是一个简单的示例,演示了如何创建和使用 ` JSONObject ` 和 ` JSONArray ` :
263
+
264
+ ``` java
265
+ import org.json.JSONArray ;
266
+ import org.json.JSONObject ;
267
+
268
+ public class JsonExample {
269
+ public static void main (String [] args ) {
270
+ // 创建 JSONObject
271
+ JSONObject jsonObject = new JSONObject ();
272
+ jsonObject. put(" name" , " John Doe" );
273
+ jsonObject. put(" age" , 30 );
274
+
275
+ // 创建 JSONArray
276
+ JSONArray jsonArray = new JSONArray ();
277
+ jsonArray. put(" Apple" );
278
+ jsonArray. put(" Banana" );
279
+ jsonArray. put(" Cherry" );
280
+
281
+ // 将 JSONArray 添加到 JSONObject
282
+ jsonObject. put(" fruits" , jsonArray);
283
+
284
+ // 输出整个 JSON 对象
285
+ System . out. println(jsonObject. toString());
286
+
287
+ // 获取并输出 name
288
+ System . out. println(jsonObject. getString(" name" ));
289
+
290
+ // 获取并遍历 fruits
291
+ JSONArray fruits = jsonObject. getJSONArray(" fruits" );
292
+ for (int i = 0 ; i < fruits. length(); i++ ) {
293
+ System . out. println(fruits. get(i));
294
+ }
295
+ }
296
+ }
297
+ ```
298
+
299
+ ## 输出日志:Log
300
+
301
+ 在 Android 开发中,Log 类是用于输出日志信息的非常有用的工具。它属于 ` android.util ` 包,提供了多种方法来打印不同级别的日志信息,帮助开发者调试应用。
302
+
303
+ 日志信息通常包括一个标签(tag)和一个消息(message)。标签是一个简短的字符串,用于标识日志信息的来源,而消息则是要输出的具体内容。
304
+
305
+ ``` java
306
+ Log . d(" preferenceTest" , " This is a debug message." );
307
+ ```
308
+
309
+ Log 类输出的日志可以在 Android Studio 的 Logcat 窗口中查看。Logcat 是一个实时日志查看工具,允许开发者根据日志级别、标签等条件过滤日志信息。
310
+
311
+ 使用 Log 类是 Android 开发中调试和监控应用状态的重要手段。合理使用日志可以帮助你快速定位问题并优化应用性能。
0 commit comments