Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSONObject不工作_Java_Android_Json - Fatal编程技术网

Java JSONObject不工作

Java JSONObject不工作,java,android,json,Java,Android,Json,我正在为android开发一个应用程序 我发出一个HTTP GET请求,这个请求返回一个JSONObject。我想按键检索值。但这并不正常。 这是我收到的名为obj的JSONObject: {“id”:1,“name”:“math”,“description”:“这是一门数学课程”。} 如果我记录loglog.d(“title”,String.valueOf(obj.has(“name”))这将导致true。 这适用于JSONObject中的所有键 但是如果我想收到这个名字并这么做: Log.d

我正在为android开发一个应用程序

我发出一个HTTP GET请求,这个请求返回一个JSONObject。我想按键检索值。但这并不正常。 这是我收到的名为obj的JSONObject:
{“id”:1,“name”:“math”,“description”:“这是一门数学课程”。}

如果我记录log
log.d(“title”,String.valueOf(obj.has(“name”))这将导致true。
这适用于JSONObject中的所有键

但是如果我想收到这个名字并这么做:

Log.d("title", obj.getString("name"));
我将得到一个未处理的异常:org.json.JSONException


有人知道我如何解决这个问题吗?

也许你应该试试这样的方法:

日志d(“标题”,对象名称)

尝试以下方法:)如果不使用jquery,可以使用JSON.parse代替$.parseJSON。Java中的跟踪

String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}";
JSONObject jObject  = new JSONObject(s);
JSONObject  menu = jObject.getJSONObject("menu");

Map<String,String> map = new HashMap<String,String>();
Iterator iter = menu.keys();
while(iter.hasNext()){
   String key = (String)iter.next();
   String value = menu.getString(key);
   map.put(key,value);
}
String s=“{菜单:{\'1\':\'sql\',\'2\':\'android\',\'3\':\'mvc\'}”;
JSONObject jObject=新的JSONObject;
JSONObject menu=jObject.getJSONObject(“菜单”);
Map Map=newhashmap();
迭代器iter=menu.keys();
while(iter.hasNext()){
字符串键=(字符串)iter.next();
字符串值=menu.getString(键);
map.put(键、值);
}

在{}之间的所有内容都是数组的一部分,因此您首先需要获得如下所示的JSONArray:

JSONArray myJSONArray=obj.getJSONArray()

然后,您可以通过以下方式访问字段值:

myJSONArray.getString(“名称”)等


在google上搜索如何使用JSONArray。

这是您认为应该如何实现它的,但不是。这不起作用。我认为这是行不通的,因为Java是严格类型的。我正在寻找一个Java解决方案,不是javascript或jquery,但感谢您的努力!我不是Java专家,但在其他地方发现了:)希望这有帮助(答案已编辑)第一部分是关于嵌套JSONObject的。在这个例子中,while-you-have-String-key=something。然后是menu.getString(键)。这将导致与object.getString(“plainString”)相同的结果。不幸的是,这对我不起作用。再次感谢!发布完整日志,stacktraceThis不起作用。getJSONArray()需要一个字符串作为参数。我还认为{}是一个对象的声明。这:[{},{],{}]是objectArray的声明。
String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}";
JSONObject jObject  = new JSONObject(s);
JSONObject  menu = jObject.getJSONObject("menu");

Map<String,String> map = new HashMap<String,String>();
Iterator iter = menu.keys();
while(iter.hasNext()){
   String key = (String)iter.next();
   String value = menu.getString(key);
   map.put(key,value);
}