返回空值的JavaJSON
我正在尝试从我的网站获取一个JSON文件并对其进行解析。不幸的是,到目前为止没有运气。我能够使用另一个名为BaslikContainer的类获取数据,但是,我需要在另一个类中使用此代码,这需要arraylist中的Baslik实例,因此我需要删除它,现在我无法使其工作 有人能指出这个问题吗?没有抛出异常-我不知道为什么会发生这种情况返回空值的JavaJSON,java,json,gson,Java,Json,Gson,我正在尝试从我的网站获取一个JSON文件并对其进行解析。不幸的是,到目前为止没有运气。我能够使用另一个名为BaslikContainer的类获取数据,但是,我需要在另一个类中使用此代码,这需要arraylist中的Baslik实例,因此我需要删除它,现在我无法使其工作 有人能指出这个问题吗?没有抛出异常-我不知道为什么会发生这种情况 package info.funstein.TestHttpGet; import java.io.BufferedReader; import java.io.
package info.funstein.TestHttpGet;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class TestHttpGet {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
BufferedReader in = null;
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://dev.funstein.info/baslik.json"));
HttpResponse response = client.execute(request);
in = new BufferedReader
(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String page = sb.toString();
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();
Basliklar basliklar = gson.fromJson(page, Basliklar.class);
System.out.println(basliklar);
}
}
class Basliklar {
private List<Baslik> basliklar;
@Override
public String toString() {
return String.format("[Basliklar: %1$s]", basliklar);
}
}
class Baslik {
private String baslikAdi;
private String baslikAcan;
private int baslikID;
public String getBaslikAdi() {
return baslikAdi;
}
public void setBaslikAdi(String baslikAdi) {
this.baslikAdi = baslikAdi;
}
public String getBaslikAcan() {
return baslikAcan;
}
public void setBaslikAcan(String baslikAcan) {
this.baslikAcan = baslikAcan;
}
public int getBaslikID() {
return baslikID;
}
public void setBaslikID(int baslikID) {
this.baslikID = baslikID;
}
@Override
public String toString() {
return String.format("[Baslik: baslikAdi=%1$s, baslikAcan=%2$s, baslikID=%3$d]",
baslikAdi, baslikAcan, baslikID);
}
}
package info.funstein.TestHttpGet;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.net.URI;
导入java.util.List;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入com.google.gson.gson;
导入com.google.gson.GsonBuilder;
公共类TestHttpGet{
/**
*@param args
*@抛出异常
*/
公共静态void main(字符串[]args)引发异常{
BufferedReader in=null;
HttpClient=new DefaultHttpClient();
HttpGet请求=新建HttpGet();
setURI(新的URI(“http://dev.funstein.info/baslik.json"));
HttpResponse response=client.execute(请求);
in=新的缓冲读取器
(新的InputStreamReader(response.getEntity().getContent());
StringBuffer sb=新的StringBuffer(“”);
字符串行=”;
字符串NL=System.getProperty(“line.separator”);
而((line=in.readLine())!=null){
sb.追加(行+NL);
}
in.close();
字符串页=sb.toString();
GsonBuilder GsonBuilder=新的GsonBuilder();
Gson-Gson=gsonBuilder.create();
Basliklar-Basliklar=gson.fromJson(第页,Basliklar.class);
系统输出打印(basliklar);
}
}
Basliklar类{
私人名单basliklar;
@凌驾
公共字符串toString(){
返回String.format(“[Basliklar:%1$s]”,Basliklar);
}
}
巴斯利克级{
私人字符串baslikAdi;
私人字符串baslikAcan;
巴斯利基德私人酒店;
公共字符串getBaslikAdi(){
返回巴斯利卡迪;
}
公共无效的巴斯利卡迪(字符串巴斯利卡迪){
this.baslikAdi=baslikAdi;
}
公共字符串getBaslikAcan(){
返回巴斯利卡坎;
}
公共空间设置(字符串baslikAcan){
this.baslikAcan=baslikAcan;
}
public int getBaslikID(){
返回巴斯利基德;
}
公共图书馆的巴斯利基德(国际巴斯利基德){
this.baslikID=baslikID;
}
@凌驾
公共字符串toString(){
返回字符串.format(“[Baslik:baslikAdi=%1$s,baslikAcan=%2$s,baslikID=%3$d]”,
巴斯利卡迪、巴斯利卡坎、巴斯利基德);
}
}
您输入的JSon字符串错误
使用Gson.toJson(Object)
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();
Basliklar b = new Basliklar();
b.basliklar = new ArrayList<Baslik>();
Baslik b1 = new Baslik();
b1.setBaslikAdi("Deneme1");
b1.setBaslikAcan("funstein");
b1.setBaslikID(0);
b.basliklar.add(b1);
Baslik b2 = new Baslik();
b2.setBaslikAdi("Deneme2");
b2.setBaslikAcan("qeremqazan");
b2.setBaslikID(1);
b.basliklar.add(b2);
LoggerFactory.getLogger(TestHttpGet.class).debug(gson.toJson(b));
您的JSON输入字符串是:
{"basliklar":[{"baslik":{"baslikAdi":"Deneme1","baslikAcan":"funstein","baslikID":"0"}},{"baslik":{"baslikAdi":"Deneme2","baslikAcan":"qeremqazan","baslikID":"1"}}]}
输入字符串中还有其他/意外的“baslik:”元素
{"basliklar":[{"baslik":{"baslikAdi":"Deneme1","baslikAcan":"funstein","baslikID":"0"}},{"baslik":{"baslikAdi":"Deneme2","baslikAcan":"qeremqazan","baslikID":"1"}}]}