我一直在寻找与将 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 数据类是 JSON 的精确模型。所以你的
{"data":{"translations":[{"translatedText":"Bonjour tout le monde"}]}}
becomes:
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 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)