我刚刚开始在java中使用json.我不确定如何在JSONArray中访问字符串值.例如,我的json看起来像这样:
{
"locations": {
"record": [
{
"id": 8817,
"loc": "NEW YORK CITY"
},
{
"id": 2873,
"loc": "UNITED STATES"
},
{
"id": 1501
"loc": "NEW YORK STATE"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码:
JSONObject req = new JSONObject(join(loadStrings(data.json),""));
JSONObject locs = req.getJSONObject("locations");
JSONArray recs = locs.getJSONArray("record");
Run Code Online (Sandbox Code Playgroud)
此时我可以访问"记录"JSONArray,但我不确定如何在for循环中获取"id"和"loc"值.对不起,如果这个描述不太清楚,我对编程有点新意.
noob Android/JSON的人在这里.我希望有人可以帮助我?
我看了看,并期待,但不认为这是我后.我整天都在研究这个项目,所以也许我的大脑刚刚开始变得糊涂......如果这已经过了其他地方请指点我那样:)
无论如何,我希望从JSONArray中获取一个特定的对象 - 这是到目前为止发生的事情:
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_obj = jArray.getJSONObject(i);
name = json_obj.getString("txt_title");
}
txt_title.setText(name);
Run Code Online (Sandbox Code Playgroud)
据我所知,result返回整个JSONArray,然后我使用for loop和获取json对象来查看这些结果的长度.目前我只是要求"txt_title"数组中的值.到现在为止还挺好?
然后我想要做的是,只说"txt_title"从数组中设置第三个值.
目前我希望txt_title.setText(name)显示所有标题,"txt_title"但它只显示数组中的最后一个标题.这可能与for loop?有关?
我该如何选择显示哪个对象?
我正在使用带有NetBeans插件的Java,称为CODAPPS来检索,解析和显示JSON数据.
我正在关注使用Google Firebase数据库生成的JSON数据的示例,但我使用的是SlashDB.
出于某种原因,来自SlashDB的JSON数据分别以[和开头和结尾].
我收到以下错误:
org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.<init>(JSONObject.java:198)
at org.json.JSONObject.<init>(JSONObject.java:325)
at userclasses.StateMachine.onMain_ButtonAction(StateMachine.java:80)
at generated.StateMachineBase.handleComponentAction(StateMachineBase.java:572)
at com.codename1.ui.util.UIBuilder$FormListener.actionPerformed(UIBuilder.java:2831)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:345)
at com.codename1.ui.Button.fireActionEvent(Button.java:411)
at com.codename1.ui.Button.released(Button.java:442)
at com.codename1.ui.Button.pointerReleased(Button.java:530)
at com.codename1.ui.Form.pointerReleased(Form.java:2578)
at com.codename1.ui.Form.pointerReleased(Form.java:2514)
at com.codename1.ui.Component.pointerReleased(Component.java:3119)
at com.codename1.ui.Display.handleEvent(Display.java:2017)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1065)
at com.codename1.ui.Display.mainEDTLoop(Display.java:994)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
Picked up _JAVA_OPTIONS: -Xmx4G
BUILD SUCCESSFUL (total time: 15 seconds)
Run Code Online (Sandbox Code Playgroud)
我的JSON数据如下所示:
[
{
"description": "Example Fast Festival Motorcycle with Boho Beading", …Run Code Online (Sandbox Code Playgroud)