Java 解析JSON以配置android应用程序
在我的android应用程序中,我必须使用来自服务器的JSON在应用程序中进行特定调整。 我试图实现的是读取此json并将所有值存储到局部变量中,以便在应用程序内执行操作 来自服务器的JSON:Java 解析JSON以配置android应用程序,java,android,json,performance,android-intent,Java,Android,Json,Performance,Android Intent,在我的android应用程序中,我必须使用来自服务器的JSON在应用程序中进行特定调整。 我试图实现的是读取此json并将所有值存储到局部变量中,以便在应用程序内执行操作 来自服务器的JSON: [ { "sett": " ", "glHdr": { "sm": [ ], "scleHPad": false, "st": "sbsm" }, "colr
[
{
"sett": " ",
"glHdr": {
"sm": [ ],
"scleHPad": false,
"st": "sbsm"
},
"colrBG": [
23,
105,
184,
100
],
"colrTB": [
0,
0,
0,
0
],
"colrTR": [
255,
255,
255,
100
],
"glFtr": {
"icoSz": "icoSzN",
"sm": [ ],
"scleHPad": false,
"gvNR": 3,
"gvHIT": false,
"gvNC": 3,
"st": "igsm"
},
"statBr": true
},
{
"sm": [
{
"tbico": "b43-jeep.png",
"t": "Welcome!",
"w": "http://google.com/start",
"st": "w",
"wTBL": "wTBLN"
},
{
"t": "Content screen title",
"f": "Eltec%20Spec%20sheet%20Gim%20RD30W.pdf",
"st": "f"
},
{
"tbico": "109-chicken.png",
"t": "Sub menu",
"sm": [
{
"t": "Screen 1",
"st": "f"
},
{
"t": "Screen 2",
"w": "Http://google.com",
"st": "w",
"wTBL": "wTBLT"
}
],
"st": "sm"
},
{
"st": "f"
}
],
"st": "tbm"
}
]
为了解析这个,我创建了parse JSON类,并试图找到在我的应用程序中读取和存储这个JSON值的方法
函数执行此操作:
public void doScanAppConfigJson(){
private static final String = TAG_TITLE;
private static final String = TAG_WEB_ADDRESS;
private static final String = TAG_SCREEN_TYPE;
private static final String = TAG_FILENAME;
JSONArray appConfig = null;
// Function for looping json object via ParseJson class.
//Creating JSON Parser instance
JSONParser jParser = new JSONParser();
//Getting json strings from url
JSONObject jsonObject = jParser.getJSONFromUrl(url);
try{
//Getting array of settings
appConfig = jsonObject.getJSONArray(ConfigConstants.TABLE_VIEW_SUB_MENU_CONFIG);
//loop throw all the objects under -sm[]
for (int i = 0; i < appConfig.length(); i++){
JSONObject sm = appConfig.getJSONObject(i);
//Now store each of this json in local constant var.
String tabTitle = sm.getString(TAG_TITLE);
String webAddress = sm.getString(TAG_WEB_ADDRESS);
String screenType = sm.getString(TAG_SCREEN_TYPE);
String fileName = sm.getString(TAG_FILENAME);
}
}catch (JSONException e){
e.printStackTrace();
}
}
我得到了错误:
settingsjava.lang.NullPointException
但我有定义变量,请有人告诉我如何解析上面的JSON。我在正确的轨道上实现了我问题的答案吗?当前的json字符串格式是:
[ //<<<< JSONArray
{ //<<<< JSONObject
// other items here...
}
]
同时将
getJSONFromUrl
method返回类型更改为JSONArray
您必须发布错误,否则我们无法帮助您。请查看更新的问题谢谢:),那么您是说将json转换为JSONArray?知道怎么做吗?@Dixit:是的,我有很多想法,只需发布带有问题的getJSONFromUrl方法代码,然后我就可以编辑了it@Dixit:u有类似于JSONJSONObject的东西jsonObject=newjsonobject(response)?然后将其更改为JSONArray jsonObject=newjsonarray(response)
我刚刚在这里添加了getJSONFromUrl
方法:)我想我在getJSONFromUrl
方法中没有这个响应,我已经在这里发布了这个方法,你能找到任何修复方法吗?
[ //<<<< JSONArray
{ //<<<< JSONObject
// other items here...
}
]
JSONArray jsonObject = jParser.getJSONFromUrl(url);