我一直在寻找与将 JSON 字符串转换为 Java 对象相关的示例,但没有找到任何好的示例。我发现的那个真的很基础,并没有真正处理复杂的 JSON 字符串。
我正在制作一个应用程序,使用谷歌翻译 api 将字符串从英语翻译成不同的语言。 Google 对查询的响应是...以下文本采用 JSON 格式,
{"data":{"translations":[{"translatedText":"Bonjour tout le monde"}]}}
到目前为止,我的方法是使用 GSON API,但实际上我应该如何操作这个复杂的结果并创建 java 对象?
我的 java 类是...
import com.google.gson.Gson;
public class JSONConverter {
private String traslatedText;
/**
* Create an object of it self by manipulating json string
* @param json type: String
* @return String Translated text result from JSON responce
*/
public String getTranslation(String json){
Gson gson = new Gson();
JSONConverter obj = gson.fromJson(json, JSONConverter.class);
return obj.getTranslationForReturn();
}
/**
* Method return a translation to a private call
* @return String translation
*/
private String getTranslationForReturn(){
return this.traslatedText;
}
}
上述方法不起作用,因为我在返回时没有得到“Bonjour tout le monde”,
如果有人能扩展我的理解,那将是非常高兴的。
最佳答案
编辑: 您需要您的 java Data 类是 JSON 的精确模型。所以你的
{"data":{"translations":[{"translatedText":"Bonjour tout le monde"}]}}
变成:
class DataWrapper {
public Data data;
public static DataWrapper fromJson(String s) {
return new Gson().fromJson(s, DataWrapper.class);
}
public String toString() {
return new Gson().toJson(this);
}
}
class Data {
public List<Translation> translations;
}
class Translation {
public String translatedText;
}
随着对象模型变得越来越复杂,org.json 风格的代码变得不可读,而 gson/jackson 风格的对象映射仍然只是普通的 java 对象。
关于java - 将json字符串转换为java对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079505/