java – 如何解析json解析在android中使用GSON
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何解析json解析在android中使用GSON,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3998字,纯文字阅读大概需要6分钟。
内容图文
我使用GSON解析Json数据.我的Json数据如下:
{
"count": "12",
"colbreak": 1,
"name": "unary rels",
"score": "9090",
"Words": [
{
"count": 6,
"word": "prp_g?a?-",
"name": "prp_g?a?-",
"score": 9.1,
"Words": "kol",
"seek": 2231297
}
],
"seek": 0
}
GsonParse.java
public class GsonParse {
@SerializedName("count")
public String count;
@SerializedName("colbreak")
public String colbreak;
@SerializedName("name")
public String count;
@SerializedName("score")
public String score;
@SerializedName("Words")
public List<Words> mWords = new ArrayList<Words>();
@SerializedName("seek")
public String seek;
}
我使用下面的方法来解析这个JSON数据.
public static <T> ArrayList<T> JsonParse(T t, String response) {
// convert String into InputStream
InputStream in = new ByteArrayInputStream(response.getBytes());
JsonReader reader;
ArrayList<T> lcs = new ArrayList<T>();
try {
reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
Gson gson = new Gson();
reader.beginObject();
while (reader.hasNext()) {
T cse = (T) gson.fromJson(reader, t.getClass());
lcs.add(cse);
}
reader.endObject();
/*
* reader.nextName(); reader.nextString(); reader.nextName();
* reader.nextString();
*/
reader.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (ArrayList<T>) lcs;
}
我面临以下错误.
03-31 10:14:26.968: E/AndroidRuntime(18578): com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NAME at line 1 column 73
解决方法:
你可以尝试这样读取gson值:
try {
AssetManager assetManager = getAssets();
InputStream ims = assetManager.open("file.txt");
Gson gson = new Gson();
Reader reader = new InputStreamReader(ims);
GsonParse gsonObj = gson.fromJson(reader, GsonParse.class);
}catch(IOException e) {
e.printStackTrace();
}
假设您刚收到这个块而不是列表.此数据目前也在资产文件夹中的文件中.您可以将其更改为要从中读取的流.
您使用的课??程应如下所示:
GsonParse.class
public class GsonParse {
@SerializedName("count")
private String count;
@SerializedName("colbreak")
private String colbreak;
@SerializedName("name")
private String name;
@SerializedName("score")
private String score;
@SerializedName("Words")
private List<Words> mWords = new ArrayList<Words>();
@SerializedName("seek")
private String seek;
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
public String getColbreak() {
return colbreak;
}
public void setColbreak(String colbreak) {
this.colbreak = colbreak;
}
private String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
public List<Words> getmWords() {
return mWords;
}
public void setmWords(List<Words> mWords) {
this.mWords = mWords;
}
public String getSeek() {
return seek;
}
public void setSeek(String seek) {
this.seek = seek;
}
}
Words.class
public class Words {
@SerializedName(value ="count")
private String count;
@SerializedName(value="word")
private String word;
@SerializedName(value="score")
private String name;
@SerializedName(value="Words")
private String words;
@SerializedName(value="seek")
private String seek;
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWords() {
return words;
}
public void setWords(String words) {
this.words = words;
}
public String getSeek() {
return seek;
}
public void setSeek(String seek) {
this.seek = seek;
}
}
在words.class中缺少一个参数,你可以添加它.
GSON不直接支持UTF-8字符.因此,当使用http接收响应时,您必须在http本身的响应中将其转换为utf-8格式.
你可以尝试使用:
String jsonString = new Gson().toJson(objectToEncode);
byte[] utf8JsonString = jsonString.getBytes("UTF8");
responseToClient.write(utf8JsonString, 0, utf8JsonString.Length);
内容总结
以上是互联网集市为您收集整理的java – 如何解析json解析在android中使用GSON全部内容,希望文章能够帮你解决java – 如何解析json解析在android中使用GSON所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。