gson string转json_string转换成jsonobject

gson string转json_string转换成jsonobjectCan’tseemtofigurethisout.似乎无法弄清楚。I’mattemptingJSONtreemanipulationinGSON,butIhavea

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文翻译自:Gson: Directly convert String to JsonObject (no POJO)

Can’t seem to figure this out. 似乎无法弄清楚。 I’m attempting JSON tree manipulation in GSON, but I have a case where I do not know or have a POJO to convert a string into, prior to converting to JsonObject . 我正在尝试在GSON中进行JSON树操作,但是在转换为JsonObject之前,我不知道或没有POJO将字符串转换成这种情况。 Is there a way to go directly from a String to JsonObject ? 有没有一种方法可以直接从String转到JsonObject

I’ve tried the following (Scala syntax): 我已经尝试了以下(Scala语法):

val gson = (new GsonBuilder).create

val a: JsonObject = gson.toJsonTree("""{ "a": "A", "b": true }""").getAsJsonObject
val b: JsonObject = gson.fromJson("""{ "a": "A", "b": true }""", classOf[JsonObject])

but a fails, the JSON is escaped and parsed as a JsonString only, and b returns an empty JsonObject . 但是a失败,仅将JSON逸出并解析为JsonStringb返回一个空的JsonObject

Any ideas? 有任何想法吗?


#1楼

参考:https://stackoom.com/question/hfn2/Gson-直接将String转换为JsonObject-无POJO


#2楼

String jsonStr = "{\"a\": \"A\"}";

Gson gson = new Gson();
JsonElement element = gson.fromJson (jsonStr, JsonElement.class);
JsonObject jsonObj = element.getAsJsonObject();

#3楼

Came across a scenario with remote sorting of data store in EXTJS 4.X where the string is sent to the server as a JSON array (of only 1 object). 遇到了一种在EXTJS 4.X中对数据存储进行远程排序的情况,其中该字符串作为JSON数组(只有1个对象)发送到服务器。
Similar approach to what is presented previously for a simple string, just need conversion to JsonArray first prior to JsonObject. 与之前针对简单字符串提供的方法类似,只需要在JsonObject之前先转换为JsonArray。

String from client: [{“property”:”COLUMN_NAME”,”direction”:”ASC”}] 来自客户的字符串: [{“ property”:“ COLUMN_NAME”,“ direction”:“ ASC”}]

String jsonIn = "[{\"property\":\"COLUMN_NAME\",\"direction\":\"ASC\"}]";
JsonArray o = (JsonArray)new JsonParser().parse(jsonIn);

String sortColumn = o.get(0).getAsJsonObject().get("property").getAsString());
String sortDirection = o.get(0).getAsJsonObject().get("direction").getAsString());

#4楼

The simplest way is to use the JsonPrimitive class, which derives from JsonElement , as shown below: 最简单的方法是使用从JsonElement派生的JsonPrimitive类,如下所示:

JsonElement element = new JsonPrimitive(yourString);
JsonObject result = element.getAsJsonObject();

#5楼

I believe this is a more easy approach: 我相信这是一个更简单的方法:

public class HibernateProxyTypeAdapter implements JsonSerializer<HibernateProxy>{

    public JsonElement serialize(HibernateProxy object_,
        Type type_,
        JsonSerializationContext context_) {
        return new GsonBuilder().create().toJsonTree(initializeAndUnproxy(object_)).getAsJsonObject();
        // that will convert enum object to its ordinal value and convert it to json element

    }

    public static <T> T initializeAndUnproxy(T entity) {
        if (entity == null) {
            throw new 
               NullPointerException("Entity passed for initialization is null");
        }

        Hibernate.initialize(entity);
        if (entity instanceof HibernateProxy) {
            entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer()
                    .getImplementation();
        }
        return entity;
    }
}

And then you will be able to call it like this: 然后您将可以这样调用它:

Gson gson = new GsonBuilder()
        .registerTypeHierarchyAdapter(HibernateProxy.class, new HibernateProxyTypeAdapter())
        .create();

This way all the hibernate objects will be converted automatically. 这样,所有休眠对象将自动转换。


#6楼

//import com.google.gson.JsonObject;  
JsonObject complaint = new JsonObject();
complaint.addProperty("key", "value");
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172479.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 感悟心态(转)

    感悟心态(转)

    2021年8月17日
    67
  • c++ listnode 赋值_C++之ListNode[通俗易懂]

    单链表,弄清楚可stl中list的区别。ListNode的结构structListNode{intval;//当前结点的值ListNode*next;//指向下一个结点的指针ListNode(intx):val(x),next(NULL){}//初始化当前结点值为x,指针为空};如何向ListNode中插入新的结点:从键盘输入ListNode*temp1=new…

    2022年4月18日
    136
  • Nessus 安装文件和详细教程(kali系统,附网盘下载链接)[通俗易懂]

    Nessus 安装文件和详细教程(kali系统,附网盘下载链接)[通俗易懂]Nessus安装详细教程(kali系统)1.下载Nessus安装文件官网下载csdn下载百度网盘下载(提取码:swu1)2.rz将文件传输到kali中的根目录下3.root@kali:~#dpkg-iNessus-5.2.1-ubuntu910_amd64.deb#执行安装命令4.然后常见一个用户,命令如图。5.激活Nessus…

    2022年10月9日
    2
  • modbus通讯协议解析

    modbus通讯协议解析1.什么是modbus协议,主要应用在哪些方面?(来源于:http://www.emtronix.com/product/ModBus_software.html) Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控

    2022年7月13日
    17
  • Vue+Element UI 商城后台管理系统[通俗易懂]

    Vue+Element UI 商城后台管理系统[通俗易懂]Vue+ElementUI商城后台管理系统一、前言1.项目背景此项目来自B站Vue实战项目:电商管理系统(Element-UI)。此项目的功能与后端提供的接口并不完全相同,根据后端接口进行开发并添加了部分功能从而进行修改。在完成此项目并测试上线后,在这里记录一下项目的开发思路,以及遇到的一些问题。自我感觉这个项目是一个很不错的关于Vue+ElementUI的练手项目2.部分效果图展示先放一些效果图项目上线地址:https://aerowang.cn/vue_shop

    2025年5月27日
    2
  • Redis 主从复制

    Redis 主从复制大家好,我是小林哥。又来图解Redis啦。我在前两篇已经给大家图解了AOF和RDB,这两个持久化技术保证了即使在服务器重启的情况下也不会丢失数据(或少量损失)。不过,由于数据都是存储在一台服务器上,如果出事就完犊子了,比如:如果服务器发生了宕机,由于数据恢复是需要点时间,那么这个期间是无法服务新的请求的;如果这台服务器的硬盘出现了故障,可能数据就都丢失了。要避免这种单点故障,最好的办法是将数据备份到其他服务器上,让这些服务器也可以对外提供服务,这样即使有一台服务器出现了故障,其他服

    2022年8月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号