[{
"_id":"5a4cee2808699d0014d99dfc",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text1",
"author":"5a173c64187e5c335488e906",
"created_at":"1514991144450",
"__v":0
},{
"_id":"5a4cee4208699d0014d99dfd",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text2",
"author":"5a2505c50c1ff300149d799f",
"created_at":"1514991170944",
"__v":0
},{
"_id":"5a4cee8608699d0014d99dfe",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text3",
"author":"5a173c64187e5c335488e906",
"created_at":"1514991238321",
"__v":0
},{
"_id":"5a4ceea908699d0014d99dff",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text4",
"author":"5a2505c50c1ff300149d799f",
"created_at":"1514991273472",
"__v":0
},{
"_id":"5a4ceed508699d0014d99e00",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text5",
"author":"5a173c64187e5c335488e906",
"created_at":"1514991317353",
"__v":0
},{
"_id":"5a4ceef108699d0014d99e01",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text6;)",
"author":"5a2505c50c1ff300149d799f",
"created_at":"1514991345153",
"__v":0
},{
"_id":"5a4cef1c08699d0014d99e02",
"conversation_id":"5a4cee2808699d0014d99dfb",
"message":"text7",
"author":"5a173c64187e5c335488e906",
"created_at":"1514991388937",
"__v":0
}]
private Emitter.Listener onNewMessage = new Emitter.Listener() {
@Override
public void call(final Object.. args) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
JSONObject data = (JSONObject) args[0];
String username;
String message;
try {
username = data.getString("username");
message = data.getString("message");
} catch (JSONException e) {
return;
}
// add the message to view
addMessage(username, message);
}
});
}
但问题是,这是针对一个JSON对象的,因此,由于我的数据是一个数组,这难道不需要采用不同的方法吗?
我一直试图像网站上说的那样用传统的方式来做,但它只是返回:
ClassCastException:java.lang.String不能强制转换为org.json.jsonObject
private Emitter.Listener onConversationJoined = new Emitter.Listener() {
@Override
public void call(final Object... args) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
String data = args[0].toString();
Log.e("TestIt", data);
JSONArray jsonarray;
try {
jsonarray = new JSONArray(args[0]);
for (int i=0; i < jsonarray.length(); i++) {
JSONObject chatmsg = jsonarray.getJSONObject(i);
String conversation_id = chatmsg.getString("conversation_id");
String message = chatmsg.getString("message");
String author = chatmsg.getString("author");
String created_at = chatmsg.getString("created_at");
addMessageUser(message);
// Whatever you want to do with these fields.
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
};
在logcat里说:
01-03 22:04:53.758 322 59-32259/com.app.app.app W/system.err:org.json.jsonException:不是基元数组:class java.lang.string
在这条线上:
我通过转换“args[0].toString()”并将其生成一个JSONArray来修复它,而不仅仅是args[0]。
所以,而不是
jsonarray = new JSONArray(args[0]);
我不得不这么做:
String data = args[0].toString();
JSONArray jsonarray = new JSONArray(data);
问题内容: 我想读这行,但是因为它以我开始有些困惑 我只需要使用“名称”并将所有另存为一个字符串。(字符串值将是:Jeff Bridges,Charles Grodin,Jessica Lange,John Randolph,Rene Auberjonois)。 这是我的代码: 问题答案: 如果您使用的是“名称”,为什么您的代码片段看起来像是试图获取“字符”的尝试? 无论如何,这与任何其他类似于列
问题内容: 我需要解析Java(Android)中来自AppEngine的DateTime字符串。该字符串如下所示:。它是某种标准格式吗?有没有比使用custom更简单的方法? 问题答案: 非常简单,除了日期字符串由于其中的最后一个而有些偏离。只需替换并使用以下模式即可:
问题内容: 我有JSON对象,如下所示: 我想在android中解析数据并将其存储到数据库中,但是我在Jsonobject中感到困惑,谢谢 问题答案: 以下是用于解析json字符串的代码段代码。请经历一下:
问题内容: 我有一个json对象是这样的: 我试图这样解析: 但是我不知道如何访问动态名称。我们如何解析这样的JSON -注意-Ya的 所有值都带有引号,例如:“ Yg&R_” 问题答案: 试试这个动态的JSON解析器
我正在使用来解析Json数据。我的Json数据如下: GsonParse.java 我使用以下方法来解析此JSON数据。 我面对以下错误。
问题内容: 我是解析新手,找不到任何过时且未提出更多问题的教程。我正在尝试解析一个简单的xml文件url。xml非常简单: 并且只想将其保存为NSDictionary(标签作为键,数据作为值)。到目前为止,我所能成功完成的工作是在控制台中使用以下命令打印xml字符串: 我浏览过所有发现的在线教程,这些教程要么过时,要么过于复杂。任何帮助表示赞赏。 问题答案: 过程很简单: 创建对象,并向其传递数据