gpt4 book ai didi

java - Json 解析作为逻辑练习

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:34 24 4
gpt4 key购买 nike

以前,我应该说,我的英语很糟糕。我对此感到抱歉。我在我的 android 项目中解析想要 Json 输出。我的 json 文件带有 url。就像那里一样

{
"urun": [
{
"ID": "1011245",
"name": "Jeanne Darc-Elbise-jdje57942xl",
"name_eng": "Jeanne Darc-Dress-jdje57942xl",
"catID": "142",
"tedarikciCode": "jdje57942xl",
"markaID": "30",
"data1": "4",
"resim": "var/30/jdje57942xl/siyah_1_jdje57942xl.jpg",
"resim2": "var/30/jdje57942xl/siyah_2_jdje57942xl.jpg",
"resim3": "var/30/jdje57942xl/siyah_3_jdje57942xl.jpg",
"fiyat": "28",
"ozellik1detay": "44-50"
}
]
}

我的解析器类是

    public class JsonParsers
{
final String TAG = "JsonParsers.java";
static InputStream is =null;
static JSONObject jObj=null;
static String ParserJson=null;

public JsonParsers(String yourJsonStringUrl) {
}

public JsonParsers() {
super();
}

public String getJsonUrl(String url) throws IOException {
try{
DefaultHttpClient httpClient=new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity=httpResponse.getEntity();
is=httpEntity.getContent();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb= new StringBuilder();
String line = "";
while ((line=reader.readLine())!=null)
{

sb.append(line+"\n");
//Log.e("çıktı:",line);
}
is.close();
ParserJson = sb.toString();


}
catch (Exception e)
{
e.printStackTrace();
}
try {
jObj=new JSONObject(ParserJson);

}
catch (JSONException e) {
e.printStackTrace();
}

return ParserJson;


}


}

我的 asyncTask 类是

 private class AsyncTaskParseJSonIncludes extends AsyncTask<String, String, String> {
final String TAG = "MainActivity.java";

JSONArray dataJsonArr = null;
String ObjectStr;






protected String doInBackground(String... path) {
try{

try{

JsonParsers parser = new JsonParsers();

//Json = parser.getJsonUrl(JsonPath);
ObjectStr=parser.getJsonUrl(JsonPath);
JSONObject Json= new JSONObject(ObjectStr);
dataJsonArr=Json.getJSONArray("urun");

for(int i=0;i<dataJsonArr.length();i++)
{
JSONObject c = dataJsonArr.getJSONObject(i);
// Log.e("Deneme", c.getString("name"));
ID.add(Integer.valueOf(c.getString("ID")));
name.add(c.getString("name"));
name_eng.add(c.getString("name_eng"));
//name_py.add(c.getString("name_py"));
CatID.add(Integer.valueOf(c.getString("CatID")));
tedarikciCode.add(c.getString("tedarikciCode"));
markaID.add(Integer.valueOf(c.getString("markaID")));
data1.add(Integer.valueOf(c.getString("data1")));
resimmmm.add(c.getString("resim"));
resim2.add(c.getString("resim2"));
resim3.add(c.getString("resim3"));
fiyat.add(Integer.valueOf(c.getString("fiyat")));
ozellik1detay.add(c.getString("ozellik1detay"));
// ozellik2detay.add(c.getString("ozellik2detay"));




}
for(int i=0;i<name.size();i++) {
Log.e("Deneme", name.get(i));
}


}
catch (JSONException e)
{
e.printStackTrace();
}
}
catch (IOException e)
{
e.printStackTrace();
}

return null;
}
protected void onPreExecute() {}
/////////////////////////////////////////////////////////


}

工作正常,但没有返回json值。我检查数据流的解析器类,它是固定的。但只返回第一个值,其他数据不返回。我不明白这是逻辑问题。当有人帮助我修复我的代码时,我很有趣。谢谢。

最佳答案

name_eng.add().

name_eng 是在哪里定义的?

CatID 到 catID。

右:

Try{A}catch{}
Try{B}catch{}
Try{C}catch{}

错误:

Try{A;B;C}catch{}

关于java - Json 解析作为逻辑练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33567374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com