陶杰
2024-12-24 5b275c38c82bd54496dc2b2d268cde1ec9ec2b29
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
package com.mzl.flower.dto.map.gaode;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
 
import java.io.IOException;
 
public class CityCodeTypeAdapter extends TypeAdapter<String> {
    @Override
    public void write(JsonWriter out, String value) throws IOException {
        if (value == null) {
            out.nullValue();
        } else {
            out.value(value);
        }
    }
 
    @Override
    public String read(JsonReader in) throws IOException {
        if (in.peek() == JsonToken.BEGIN_ARRAY) {
            // 处理数组类型
            StringBuilder result = new StringBuilder();
            in.beginArray();
            while (in.hasNext()) {
                if (result.length() > 0) {
                    result.append(",");
                }
                result.append(in.nextString());
            }
            in.endArray();
            return result.toString();
        } else if (in.peek() == JsonToken.STRING) {
            // 处理字符串类型
            return in.nextString();
        } else if (in.peek() == JsonToken.NULL) {
            in.nextNull();
            return "";
        } else {
            throw new IllegalStateException("Unexpected JSON type: " + in.peek());
        }
    }
}