• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在Java中,如何将字符串转换为JSONObject

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我有一个名为jsonString的字符串变量:

{"phonetype":"N95","cat":"WP"}

现在我想把它转换成JSON对象。已在Google上各种搜索查找,但没有得到任何预期的答案…

最佳解决方法

使用org.json库:

JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");

或者:

JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(stringToParse);

第二种解决方法

可以使用google-gson。细节:

对象示例

class BagOfPrimitives {
  private int value1 = 1;
  private String value2 = "abc";
  private transient int value3 = 3;
  BagOfPrimitives() {
    // no-args constructor
  }
}

(串行化)

BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj); 
==> json is {"value1":1,"value2":"abc"}

请注意,不能序列化具有循环引用的对象,因为这将导致无限递归。

(反序列化)

BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);  
==> obj2 is just like obj

Gson的另一个例子是:

Gson很容易学习和实现,你需要知道的是以下两种方法:

– > toJson() – 将java对象转换为JSON格式

– > fromJson() – 将JSON转换为java对象

import com.google.gson.Gson;

public class TestObjectToJson {
  private int data1 = 100;
  private String data2 = "hello";

  public static void main(String[] args) {
      TestObjectToJson obj = new TestObjectToJson();
      Gson gson = new Gson();

      //convert java object to JSON format
      String json = gson.toJson(obj);

      System.out.println(json);
  }

}

输出

{"data1":100,"data2":"hello"}

资料:

Google Gson Project Home Page

Gson User Guide

Example

第三种方法

这里JSON home page链接了各种Java JSON序列化器和反序列化器。

目前有以下20个:

  • org.json

  • org.json.me

  • Jackson JSON Processor

  • Json-lib

  • JSON Tools

  • json-simple

  • Stringtree

  • SOJO

  • Restlet

  • Jettison

  • json-taglib

  • XStream

  • JsonMarshaller

  • Flexjson

  • JON tools

  • google-gson

  • Argo

  • Pivot

  • jsonij

  • fastjson

这个列表还在变化中……

第四种方法

Java 7中的解决方案

import javax.json.*;

...

String TEXT;
JsonObject body = Json.createReader(new StringReader(TEXT)).readObject()

;

参考资料

  • How to convert String to JSONObject in Java


鲜花

握手

雷人

路过

鸡蛋
专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap