在Android中从更大的捆绑包中获取内部捆绑包
我在我的Android代码中有一个函数,其中我得到一个包作为输入:在Android中从更大的捆绑包中获取内部捆绑包,android,bundle,Android,Bundle,我在我的Android代码中有一个函数,其中我得到一个包作为输入: void f(Bundle data) 这个数据实际上是json格式的。假设它采用以下格式: {“a”:“x”,“b”:“y”,“content”:{“a1”:“x1”,“b1”:“y1”} 在这种情况下,如果我想得到a或b的值,那么我需要执行stringa=data.getString(“a”)它将获取字符串“x”。类似地,String content=data.getString(“content”)将返回字符串{“a1”
void f(Bundle data)
这个数据实际上是json格式的。假设它采用以下格式:
{“a”:“x”,“b”:“y”,“content”:{“a1”:“x1”,“b1”:“y1”}
在这种情况下,如果我想得到a或b的值,那么我需要执行stringa=data.getString(“a”)
它将获取字符串“x”
。类似地,String content=data.getString(“content”)
将返回字符串{“a1”:“x1”、“b1”:“y1”}
。但我不知道如何在内容本身中获得特定的值。有没有什么方法可以像数据那样将内容作为另一个包来获取,这样我就可以通过执行content.getString(“a1”)
之类的操作来获取其中的值。可能吗
JSONObject jOBj = new JSONobject(data.getString("content"));
String a1 = jOBj.getString("x1");
String b1 = jOBj.getString("y1");
试试这个为什么不使用JSONObject来代替bundle?比如getBundle?你至少读过捆绑文档了吗?是的,它返回空值。没有工作,因此问。谢谢。我不使用JSONObject而使用Bundle,因为函数中的参数不在我的控制范围内。如果您知道有一个解决方案,假设我单独收到一个捆绑包,请提供帮助。data
是一个捆绑包。Bundle类没有getJSONObject
function.data.getString(“内容”).getString(“a1”)data.getString(“内容”)
返回一个字符串。所以data.getString(“内容”).getString(“a1”)
毫无意义,因为String对象首先没有getString
函数