Gson是Google的开源库,用于将Java对象序列化和反序列化为JSON。
GSON 格式日期为“2024-11-07T17:33:20+00:00”
当我将 Json 记录解析到我的对象时,我正在寻找一种格式化日期的方法,例如“2024-11-07T17:33:20+00:00”。
我是Java编码的自学初学者,所以请理解。 我正在编写 REST api 应用程序,在某些时候期望从服务器获得这样的响应: [ { “成功”: { ...
我想将 JSON 输出映射到 Java 类 这是对 REST API 请求的响应。我附上了一些我遇到问题的 JSON。它是较大文件的较小部分。 这就是……
JSON str 的值有时是字符串,有时是对象,我如何使用 gson 来解析它
我的json str有时是这样的: { “数据”: { "changebaby": "没有变化", “改变妈妈”:{ "mamacontext": "妈妈我...
使用Gson将JSON数组解析为java.util.List
我有一个名为“mapping”的 JsonObject,其内容如下: { “客户端”:“127.0.0.1”, “服务器”:[ “8.8.8.8”, “8.8.4.4”, “156.154.70.1”, “156.154.71.1” ...
为什么它们有时不一致?从服务器接收的 java.sql.Date 类型的值,然后由 google.gson 转换。从服务器发送的 json 字符串
问题 简介 为什么他们有时会不一致?从服务器 Postman 收到的 java.sql.Date 类型的值然后由 com.google.gson.Gson 反序列化(在实例化 Gson 实例之前,我
为什么 com.google.code.gson 包无法从 Postman 发送到 Tomcat 的 json 字符串正确转换 java.sql.Timestamp 的值?
我做什么? 我从 Postman 向 Tomcat v9.0 发送了一个 GET 请求,其中包含以下数据。 { “日记ID”:2, “用户ID”:2, "createTimestamp":"2022-05-05 12:00:00&quo...
GSON 已弃用。我们可以使用哪一个来序列化 Java 对象与 JSON 之间的序列化和反序列化?
嗨,我想存储 Java 对象。 我搜索并发现 GSON 库正在执行 Java 对象到 Json 字符串的转换,反之亦然。然后我可以存储转换后的 JSON String...
使用 GSON 解析来自 Google Directions API 的数据
我的API响应是这样的 - { “地理编码路径点”:[], “路线”:[ { “边界”:{}, "copyrights": "地图数据 ©2024", “腿”:[ { “远方……
应该是一个简单的问题。 当我访问 https://github.com/google/gson 时,我只能将库下载为 zip 文件夹,而不是 jar 文件。 哪里可以得到jar文件?
我正在使用 Gson 解析来自某个 API 的 JSON 响应。 一切正常,但现在似乎响应的字段之一可以采用数组形式或单个元素形式,s...
我一直在尝试使用 GSON 从 JSON 字符串生成协议缓冲区消息。有可能做到吗? 我已经尝试过: Gson gson = new Gson(); 类型类型=新的TypeToken 我一直在尝试使用 GSON 从 JSON 字符串生成协议缓冲区消息。可以做到吗? 我已经尝试过: Gson gson = new Gson(); Type type = new TypeToken<List<PROTOBUFFMESSAGE.Builder>>() {}.getType(); List<PROTOBUFFMESSAGE.Builder> list = (List<PROTOBUFFMESSAGE.Builder>) gson.fromJson(aJsonString, type); 和 Gson gson = new Gson(); Type type = new TypeToken<List<PROTOBUFFMESSAGE>>() {}.getType(); List<PROTOBUFFMESSAGE> list = (List<PROTOBUFFMESSAGE>) gson.fromJson(aJsonString, type); JSON 中的消息使用与协议缓冲区中相同的名称,即: message PROTOBUFFMESSAGE { optional string this_is_a_message = 1; repeated string this_is_a_list = 2; } 将生成 json: [ { "this_is_a_message": "abc", "this_is_a_list": [ "123", "qwe" ] }, { "this_is_a_message": "aaaa", "this_is_a_list": [ "foo", "bar" ] } ] 虽然生成了包含正确数量的 PROTOBUFFMESSAGE 的列表,但它们的所有字段都为空,所以我不确定这是否是映射问题、反射系统未检测到 protobuffs 字段或其他问题。顺便说一句,我在这里谈论的是 Java。 编辑 将 JSON 中的名称更改为: { "thisIsAMessage_": "abc", "thisIsAList_": [ "123", "qwe" ] } 使反序列化发生。除了抛出的列表之外,它确实有效: java.lang.IllegalArgumentException: Can not set com.google.protobuf.LazyStringList field Helper$...etc big path here...$PROTOBUFFMESSAGE$Builder.thisIsAList_ to java.util.ArrayList 听起来你必须使用 GsonBuilder 来构建 Gson 对象,并为 com.google.protobuf.LazyStringList 对象编写并注册一个类型适配器。 不要通过构造函数启动 Gson 对象,而是使用以下代码片段: GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(LazyStringList.class, new TypeAdapter<LazyStringList>() { @Override public void write(JsonWriter jsonWriter, LazyStringList strings) throws IOException { } @Override public LazyStringList read(JsonReader in) throws IOException { LazyStringList lazyStringList = new LazyStringArrayList(); in.beginArray(); while (in.hasNext()) { lazyStringList.add(in.nextString()); } in.endArray(); return lazyStringList; } });
使用gson dateformat序列化和反序列化unix时间戳
我正在使用 Gson 来序列化/反序列化我的 pojo,目前正在寻找一种干净的方法来告诉 Gson 将日期属性解析/输出为 unix 时间戳。 这是我的尝试: Gson gson = 新的 GsonBuild...
如何将 JsonObject 列表从 google json 转换为 Jackson 的 JsonNode 对象
我有一个来自 google JSON 库的 JsonObject 列表,然后我需要调用一个第三方库,它接受来自 Jackson 库的 JsonNode 对象。 我没有太多经验
使用 GSON 序列化为 JSON 的类是否应该实现可序列化接口
我有这个 POJO,它正在使用 new Gson().toJson(entity) 序列化为 JSON 我应该在此 POJO 上实现可序列化接口吗? @数据 公共类 BankcodeJSONEntity { @NotNull...
改造转换器工厂无法访问GsonConverterFactory
我已将这些依赖项包含到我的项目中: 编译 'com.squareup.retrofit:retrofit:2.0.0-beta2' 编译 'com.squareup.retrofit:converter-gson:2.0.0-beta1' 我要去上课...
在 Kotlin 中使用 TypeConverter (GSON) 处理带有自定义对象的 Room 时出错
我收到错误 查询方法参数应该是可以转换为数据库列的类型或包含此类类型的列表/数组。你可以考虑添加一个Type Adapt...
我有这样的Java POJO类: 类主题{ @SerializedName(“id”) 长 ID; @SerializedName(“名称”) 字符串名称; } 我有一个像这样的 Kotlin 数据类 数据类主题(...
任务 远程服务器返回带有正文的响应: { 完成:真实, 回复: { 结果: { // 数据 } } } 如果出现错误,则会返回 200 状态和
我试图从 JSON 字符串中转义值并删除后端的 HTML 字符(如 等)。我读过 GSON 通常会自己这样做,但就我而言,并不是因为我很可怕......</desc> <question vote="2"> <p>我试图从 JSON 字符串中转义值并删除后端的 HTML 字符(如 <pre><code><script></code></pre> 等)。我读过 GSON 通常会自行执行此操作,但就我而言,不是因为我直接通过“fromJson”填充 javaobject。</p> <p>如果我只是使用 commons 库并使用 escapeString 或 escapeJson 进行转义,它也会转义双引号 (") 并会中断 GSON 中的 fromJson 函数。</p> <p>我使用以下功能来填充对象:</p> <pre><code>Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").create(); DataObject dObject = gson.fromJson(jsonString, DataObject.class); </code></pre> <p>json 字符串如下所示(动态):</p> <pre><code>{"dynamic":[{"id":1,"constrain":"1","value_text":"test"},{"id":11,"constrain":"1","value_boolean":1},],"name":"Xzzz","prename":"XY","language":"e","email":"<a href="/cdn-cgi/l/email-protection" data-cfemail="dea69ea6a7f0bdb1b3">[email protected]</a>"} </code></pre> <p>我只是想转义 json 字符串的值(就像当有人输入名称 <pre><code><script>;</code></pre> 时,它应该转义为 <pre><code>&lt;script&gt;</code></pre>)</p> <p>有人知道我该如何解决这个问题吗?</p> <p>提前致谢</p> </question> <answer tick="true" vote="2"> <p>我的猜测是您正在尝试清理用户的输入以防止跨站点脚本编写。 您可能想要做的是使用白名单来允许输入。一旦输入通过,您就可以将其发送到后端。</p> <p>这是一个很好的参考</p> <p><a href="http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer" rel="nofollow">http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer</a></p> <p>总结起来就是这样:</p> <pre><code>String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>"; String safe = Jsoup.clean(unsafe, Whitelist.basic()); // now: <p><a href="http://example.com/" rel="nofollow">Link</a></p> </code></pre> </answer> <answer tick="false" vote="1"> <p>如果 Json 的内容是正确的 json,则不必担心 html 编码。任何 json 库都不会自动对属性进行 html 编码。 如果您需要编码为 html,可以使用此库: <a href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encoder.html#encodeForHTML(java.lang.String)" rel="nofollow">http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encoder.html#encodeForHTML(java.lang.字符串)</a></p> <p>如果您想对 html 属性分配进行编码(也可能是这种情况),您应该使用以下代码: <a href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encoder.html#encodeForHTMLAttribute(java.lang.String)" rel="nofollow">http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encoder.html#encodeForHTMLAttribute(java.lang.String)</a></p> <p>我的建议是,在应用任何这种编码之后:<a href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encoder.html#encodeForJavaScript(java.lang.String)" rel="nofollow">http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encoder.html#encodeForJavaScript(java.lang.字符串)</a>(如果您的图书馆不提供此功能)。</p> <p>一般来说,在编码时,你必须知道浏览器中的解析器(Javascript/json/html)如何运行以及运行顺序。</p> </answer> </body></html>