我在以下代码中Gson()
,jsonString
和TypeToken
收到错误消息:
Map<String, Object> jsonMap = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType());
实际方法是: public void sendButton(View v){ 消息myMessage = new Message(username,getTimeAndDate(),getMessage(),chatroomName,Incognito);
String message = myMessage.messageData();
Map<String, Object> jsonMap = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType());
// ref.setValue(myMessage.messageData());
messageData()
和jsonString
在我的Message类的以下代码中定义:
public String messageData() {
JSONObject obj1 = new JSONObject();
JSONObject obj2 = new JSONObject();
// Map<String, JSONObject> mapJSON = new HashMap<String, JSONObject>();
try {
obj1.put("Message", chatMessage);
obj1.put("Username", username);
obj1.put("isIncognito", Incognito);
obj2.put(Long.toString(sendTime), obj1.toString());
} catch (JSONException JE) {
Log.e("Json Crash!!!", "Something went wrong here");
}
String jsonString = obj2.toString();
//
// mapJSON.put(chatRoomName, obj2);
return jsonString;
}
我的应用程序的构建gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.1.0'
classpath 'com.google.code.gson:gson:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
我的应用程序依赖项如下代码所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:25.3.1'
compile 'com.google.firebase:firebase-storage:10.2.0'
compile 'com.google.firebase:firebase-auth:10.2.0'
compile 'com.google.firebase:firebase-core:10.2.0'
compile 'com.google.firebase:firebase-database:10.2.0'
compile 'com.google.android.gms:play-services-ads:10.2.0'
compile files('libs/gson-2.2.4.jar')
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-service
我最终试图使用Gson让我的json工作,因为我的json代码现在不能正常工作所以如果你们有建议,请帮助,但我也在寻找帮助,只需导入Gson /导入图书馆。谢谢!
很抱歉,如果我弄乱了格式化,或者这是一个重复的线程,我有点新的堆栈溢出和发布!遗憾!
答案 0 :(得分:6)
在您使用Gson的活动中添加以下行:
import com.google.gson.Gson;
同时删除以下不需要的文件:
classpath 'com.google.code.gson:gson:2.2.3'
在您的dependecies而不是compile files命令中使用以下命令:
compile 'com.google.code.gson:gson:2.6.2'
答案 1 :(得分:0)
您将Gson依赖项置于错误的位置。从Project build gradle中删除Gson依赖项
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.1.0'
classpath 'com.google.code.gson:gson:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
并将其置于app模块依赖项中,如下所示
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support:design:25.3.0'
compile 'com.android.support:support-v13:25.3.0'
compile 'com.android.support:support-v4:25.3.0'
compile 'com.android.support:recyclerview-v7:25.3.0'
compile 'com.google.code.gson:gson:2.8.1'
testCompile 'junit:junit:4.12'
}
答案 2 :(得分:0)
dependencies {
compile 'com.google.code.gson:gson:2.2.+'
compile 'com.android.support:support-v4:13.0.+'
compile 'com.android.support:appcompat-v7:18.0.+'
}
添加此