关键词:
【中文标题】将json字符串转换为java对象?【英文标题】:Converting json string to java object? 【发布时间】:2011-08-30 02:04:43 【问题描述】:我一直在寻找与将 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”,
如果有人能扩展我的理解,那将是非常高兴的。
【问题讨论】:
你得到了一个 json 字符串,对吧?您还需要定义变量。然后您可以执行类似 obj.translation 的操作来获取实际翻译。我以前从未在 java 中处理过 json,所以我真的不知道您将如何定义该变量。查看您提供的链接中的示例 2。虽然你拥有的字符串是嵌套的,但我真的不知道 gson 会如何解析它。 这个问题看起来像是重复的:***.com/questions/1395551/… 【参考方案1】:编辑: 您需要您的 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 对象。
【讨论】:
如果参数是带下划线的“translated_text”并且innerClass ii是“translatedText”,则该变量的结果为空。我已经解决了这个问题:***.com/a/15907855/3332734 json字段与pojo字段名不匹配时有Gson注解。 是的! @SerializeName("json_field") 这是一种方式。【参考方案2】:检查一下Converting JSON to Java,我想你可以将一个类定义为对象并传递它。所以,创建一些类并传递它。
Data obj = gson.fromJson(json, Data.class);
class Data
public List<Data> getTranslation()
return translations;
试试类似的东西。您可能需要进行一些实验。
【讨论】:
感谢您的回答,但是我选择第二个答案更容易接受,但是您的回答使我对 Gson 的理解更加清楚......干杯 @krio,没关系,但我会选择 kevins 的回答。 gson 看起来更加更新和强大。【参考方案3】:我通常喜欢使用简单的org.json library
将其用作:
// make sure the quotes are escaped
String str = "\"data\":\"translations\":[\"translatedText\":\"Bonjour tout le monde\"]";
// the object data is inside a "global" JSONObject
data = new JSONObject(str).getJSONObject("data");
// get a JSONArray from inside an object
JSONArray translations = data.getJSONArray("translations");
// get the first JSONObject from the array
JSONObject text = translations.getJSONObject(0);
// get the String contained in the object -> logs Bonjour tout le monde
Log.d("***>Text", text.getString("translatedText"));
也许这么多代码没有我想要的那么清晰。这是我会做的功能:
public String getTranslation(String json)
JSONObject data = new JSONObject(json).getJSONObject("data");
return data.getJSONArray("translations").getJSONObject(0).getString("translatedText");
【讨论】:
很高兴知道一个简单的新方法!谢谢 那是超级老派,现实世界中再也没有人使用那个图书馆了。很有趣,它被标记为正确答案。 @Kevin 对于这么简单的任务,我仍然认为它是最好的方法。只需 2 个 LOC,即可获得结果。您必须定义 3 个类才能使用 Gson 获得相同的结果。我不会否认它在其他情况下的优势,但我在这里看不到任何东西。\ 那是真正的 Aleadam,但是当您确实需要这些额外的东西时会发生什么。此外,它还使其更清晰、更易于阅读和更新。 Java 都是关于 OO 编程的,不是吗? 我在整个应用程序中使用相同的东西。我们对 JSON 解析或对象建模有何看法java示例代码_将json字符串转换为java对象
java示例代码_将json字符串转换为java对象 查看详情
将 JSON 数据转换为 Java 对象
...3【问题描述】:我希望能够在我的Java操作方法中访问JSON字符串的属性。只需说出myJsonString=object.getJson()即可获得该字符串。下面是字符串的示例:\'title\':\'ComputingandInformationsystems\',\'id\': 查看详情
将json字符串转换为java对象?
】将json字符串转换为java对象?【英文标题】:Convertingjsonstringtojavaobject?【发布时间】:2011-08-3002:04:43【问题描述】:我一直在寻找与将JSON字符串转换为Java对象相关的示例,但没有找到任何好的示例。我发现的那个真的很基础... 查看详情
java示例代码_将以下json字符串转换为java对象
java示例代码_将以下json字符串转换为java对象 查看详情
将JSON格式的字符串转换为Java中的JSON对象[重复]
】将JSON格式的字符串转换为Java中的JSON对象[重复]【英文标题】:ConvertaStringwhichisinJSONFormattoaJSONObjectinjava[duplicate]【发布时间】:2019-04-2807:41:56【问题描述】:我目前正在尝试使用HTTP客户端jar自动化API。我已将JSON格式的API响应... 查看详情
Spark 将 JSON 字符串转换为 JSON 对象(Java)
】Spark将JSON字符串转换为JSON对象(Java)【英文标题】:SparkconvertJSONstringtoJSONobject(Java)【发布时间】:2018-04-3016:56:33【问题描述】:我一直在查看从Kafka接收到的JSON字符串到JSON对象的转换示例。我只找到了对我没有太大帮助的Sc... 查看详情
将 JSON 字符串转换为 Java 对象或 HashMap
】将JSON字符串转换为Java对象或HashMap【英文标题】:ConvertJSONStringtoJavaObjectorHashMap【发布时间】:2011-02-0222:57:16【问题描述】:我正在编写一个安卓应用程序。我想在意图/活动之间传递一些数据,我觉得在这一点上与JSON之间的... 查看详情
json对象和java对象的互相转化
1.将json字符串转换为java对象 JSONObjectobj=newJSONObject().fromObject(jsonStr);//将json字符串转换为json对象 Personjb=(Person)JSONObject.toBean(obj,Person.class);//将json对象转换为Person对象2.将java对象转换为json字符串 JS 查看详情
java示例代码_将带有动态字段的Json字符串转换为对象
java示例代码_将带有动态字段的Json字符串转换为对象 查看详情
将对象转换为json字符串
将对象转换为JSON串:方案一: 可以通过json-lib工具jar包进行转化;在www.json.org官网下载jar包。 方案二: 通过ObjectMapper对象进行转换 需要引入相应的jar包1//查询全部角色信息2List<Role>rolelist=roleService.findAll();3//将... 查看详情
如何将数据实体转换为json字符串
将数据实体转换为JSON字符串的方法:先将java对象转换为json对象,在将json对象转换为json字符串JSONObjectjson=JSONObject.fromObject(obj);//将java对象转换为json对象Stringstr=json.toString();//将json对象转换为字符串参考代码如下:packagebaz.parse;im... 查看详情
如何将数据实体转换为json字符串
参考技术A将数据实体转换为JSON字符串的方法:先将java对象转换为json对象,在将json对象转换为json字符串JSONObjectjson=JSONObject.fromObject(obj);//将java对象转换为json对象Stringstr=json.toString();//将json对象转换为字符串参考代码如下:packag... 查看详情
js将json字符串转换为json对象或json对象转换成json字符串
JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘; JSON对象:varstr2={"name":"cxh","sex":"man"};一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘);或者va... 查看详情
js将json字符串转换为json对象的方法解析
例如:JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘; JSON对象:varstr2={"name":"cxh","sex":"man"};一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘)... 查看详情
将json字符串转换成json对象
例如:JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘;JSON对象:varstr2={"name":"cxh","sex":"man"};一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘);或... 查看详情
如何使用 Java 库将标记的 YAML 对象转换为 JSON 对象?
...中每个JavaMap包含来自相应YAML映射的所有条目,以及键为字符串“objectType”的条目”并且值 查看详情
js将json字符串转换为json对象的方法解析
JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘; JSON对象:varstr2={"name":"cxh","sex":"man"};要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘)orvarobj=str.parseJSON()然后,就可以这... 查看详情
java将json字符串转换成对象批量存储数据
参考技术A使用toJSONString()或者全局方法JSON.stringify()。将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,JS操作的是JSON对象,JSON对象和JSON字符串之间的相互转换是关键。 查看详情