JSON常用方法
Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。
几个常用的 JSON 解析类库:
maven依赖:
1 2 3 4 5
| <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
|
JSON 对象与字符串的相互转化
| 方法 |
作用 |
JSON.parseObject() |
从字符串解析 JSON 对象 |
| JSON.parseArray() |
从字符串解析 JSON 数组 |
JSON.toJSONString(obj/array) |
将 JSON 对象或 JSON 数组转化为字符串 |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject;
public class JSONTest { public static void main(String[] args) { JSONObject obj = JSON.parseObject("{\"name\":\"ys\"}"); System.out.println(obj);
String objStr = JSON.toJSONString(obj); System.out.println(objStr); } }
|
Scala样例类转换成JSON字符串
将Scala样例类转换成为JSON字符串,JSON.toJSONString(obj)会失效,所以使用如下方法:
maven依赖(json4s —> json for scala):
1 2 3 4 5
| <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-native_2.11</artifactId> <version>3.5.4</version> </dependency>
|
1 2 3 4
| import org.json4s.native.Serialization implicit val formats=org.json4s.DefaultFormats
val orderInfoJson: String = Serialization.write(orderInfo)
|
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import com.alibaba.fastjson.{JSON, JSONObject} import com.atguigu.bean.UserInfo import org.json4s.native.Serialization
object JsonStrTest {
def main(args: Array[String]): Unit = {
val userInfo = UserInfo("1001","name1","5","2020-05-25","male")
implicit val formats = org.json4s.DefaultFormats val str = Serialization.write(userInfo) println(str) val nObject: JSONObject = JSON.parseObject(str) println(nObject) } }
|
UserInfo.scala
1 2 3 4 5
| case class UserInfo(id:String, login_name:String, user_level:String, birthday:String, gender:String)
|