将json字符串转换为java对象?

2024-01-02

我一直在寻找与将 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(使用前将#替换为@)

将json字符串转换为java对象? 的相关文章

随机推荐

  • FB 未定义

    如果按下 Facebook Like 按钮 我尝试重定向到 URL 但它不起作用 并且结果在源视图中出现错误 提示 FB 未定义 这是我的重定向代码 FB Event subscribe edge create function respo
  • TextInputLayout 中的 EditText 滞后

    我有两种观点使用TextInputLayout 第一个是只有 2 个输入字段的登录视图 第二个是有许多输入字段的注册视图 我在用TextInputLayout and EditText AppCompatEditText为我的输入提供自定义
  • 向一组 WinForms 控件添加类似的行为

    我有一个有 6 个按钮的表单 这些按钮用于增加 减少相应文本框的值 现在我正在尝试为按钮 设置动画 当鼠标悬停在按钮上时 我想在按钮上获得另一种效果 为此 我在资源中有两个不同的图像 并且正在执行以下代码 private void btnH
  • python 3 上的 ImportError,在 python 2.7 上运行良好

    我在导入时遇到错误code parsing与 Python 3 2 一起打包 目录code parsing是在PYTHONPATH并包含以下文件 还有其他一些文件 但与此处无关 code parsing init py code parsi
  • 通过 SSH 推送到远程存储库时“访问被拒绝”

    我是 Git 新手 似乎在通过网络推送到存储库时遇到问题 这是我重现问题的方法 在计算机上创建一个新的 Git 存储库以推送到 mkdir git test git cd git bare init 然后 我在本地计算机上创建一个新的 Gi
  • bash变量分别捕获stderr和stdout或获取退出值[重复]

    这个问题在这里已经有答案了 我需要捕获 bash 脚本中命令的输出和错误 并了解该命令是否成功 目前 我正在这样捕获两者 output mycommand 2 gt 1 然后我需要检查 mycommand 的退出值 如果失败 我需要对输出做
  • 在标头中声明并初始化静态 int

    如果我的头文件中有以下内容 Foo h Foo public static const int BAR 1234 我是否还需要在 cpp 中定义变量 例如 Foo cpp const int Foo BAR 我们遇到一个问题 在标头中初始化
  • 最新的 Jackrabbit 快照可以在 Lucene 3 上正常工作吗?

    我正在开发一个基于 Java Web 的应用程序 该应用程序同时使用 Jackrabbit 和 Hibernate Search 我面临的问题是 Jackrabbit 严重依赖 Lucene 2 但搜索需要 Lucene 3 才能工作 我设
  • 搁置真的很慢并且占用大量内存还是我做错了什么?

    我正在尝试编写一个程序 该程序使用排序字母的搁置数据库作为键 以及可以从它们创建的单词列表作为值 例如 db mnoo moon mono 所以我编写了一个函数 它接受一个文件名并将其加载到架子中 第一部分将文件转换为与搁置具有相同布局的字
  • R中如何将数字转换为日期? [复制]

    这个问题在这里已经有答案了 我有以下数据框 id lt c 1 2 3 4 date lt c 19970807 19970902 19971010 19970715 df lt data frame id date 其中日期列中的值的类型
  • JavaScript 如何检查手机/平板电脑的用户代理

    我目前正在为客户网站开发一些 JS 工作 该网站在桌面和平板电脑平台上具有不同的功能 考虑 if navigator userAgent match Android i navigator userAgent match webOS i n
  • 使用 swift Xcode 6 默认选项卡栏项目颜色

    环境 Xcode 6 测试版 4 斯威夫特语言 iOS 选项卡式应用程序 默认 xCode 项目 如何将选项卡的默认灰色更改为其他颜色 最好是全球范围内 就我的研究而言 我需要以某种方式将每个选项卡的图像渲染模式更改为原始渲染模式 但我不知
  • Apache 重写 URL 但不重写某些文件夹

    我正在使用 Apache 将我的 URL 重写为干净的 URL RewriteRule index php 目前 这也会重写目录 这正是我想要的 因为我希望所有内容都通过我的 router index php 文件运行 然而 我想做的是拥有
  • SQL Server XML 存在()

    我在使用时遇到一些问题exist and value SQL Server 2008 中的方法 我的 XML 看起来像这样
  • 使用 stringformat 时 WPF 文本框绑定不起作用

    这是我的问题 我有一个文本框 它使用文本框预览并对输入的文本进行一些验证 文本框绑定到 double 属性 最初 当用户输入带有小数的数字时 它会崩溃 因为当数字为 1 时 每次击键后都会更新 它会自动更改为 1 删除小数 并且当在小数点后
  • 批量插入具有地理空间数据类型的表时出现“指定类型未注册”错误

    我正在尝试使用SqlBulkCopy类来自System Data程序集 4 6 1 批量插入具有地理空间数据类型的表 使用的代码大致如下 改编自https github com MikaelEliasson EntityFramework
  • 在邻近区域组建实力相似的团队

    Idea 令人遗憾的是 如此多的伟大国家 例如印度 和球员 例如莫萨拉赫 可能永远不会参加国际足联 足球 足球 世界杯 同样的论点也适用于由少数统治者主导的其他体育赛事 队 例如国际板球和篮球锦标赛 尝试创建一个更加平衡的赛事 同时仍然保留
  • new[] 是否调用 C++ 中的默认构造函数?

    当我使用 new 创建类数组时 int count 10 A arr new A count 我看到它调用了默认构造函数A count次 因此arr has count已初始化类型的对象A 但是如果我使用同样的东西来构造一个 int 数组
  • Java 通过 Socket 传输属性

    首先 这是一个家庭作业问题 话虽如此 我被困住了 谷歌搜索 java Properties over Sockets 会得到很多不相关的东西 我正在尝试通过套接字传输 Properties 对象 API 说它可以通过 Stream 或 Wr
  • 将json字符串转换为java对象?

    我一直在寻找与将 JSON 字符串转换为 Java 对象相关的示例 但没有找到任何好的示例 我发现的那个非常基本 并且没有真正处理复杂的 JSON 字符串 我正在制作一个应用程序 使用谷歌翻译 API 将字符串从英语翻译成不同的语言 Goo