parseObject和fromObject的区别

注意到两个JSON的不同的使用,两个功能差不多,但是属于不同的包,一个是alibaba.fastjson.JSON,另一个是net.sf.json
当有一个String的字符串时,需要把它转化为JSONArray的数组(net.sf.json.JSONArray.fromObject(str))
取出name7的值,首先需要使用jsonArray.getJSONObject(0)取出数组第一项,得出{name1:{name2:{name3:‘value1’,name4:{name5:‘value2’,name6:{name7:‘value3’}}}}},

然后再使用getJSONObject(“name1”)依次往下取值,直到取到最后一项时,使用get(String key),取出它对应的value值,作为字符串返回
在这里插入图片描述
在这里插入图片描述

package com.tapt.instance;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class Jsontest {
public static void main(String[] args) {    
    String json="{\"name\":\"刘德华\",\"age\":35,\"some\":[{\"k1\":\"v1\",\"k2\":\"v2\"},{\"k3\":\"v3\",\"k4\":\"v4\"}]}";
    JSONObject jso=JSON.parseObject(json);//json字符串转换成jsonobject对象
    System.out.println("初始jsonObject:\n"+jso+"\n");
    JSONArray jsarr=jso.getJSONArray("some");//jsonobject对象取得some对应的jsonarray数组
    System.out.println("jsonObject里面的jsonarray:\n"+jsarr+"\n");
   JSONObject ao=jsarr.getJSONObject(0);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象
   System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject:\n"+ao+"\n");
   String vString=ao.getString("k1");//jsonobject对象通过key直接取得String的值
   System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject里的键值对对k1取值:\n"+vString+"\n");
}
}

控制台输出:

初始jsonObject:
{“age”:35,“name”:“刘德华”,“some”:[{“k1”:“v1”,“k2”:“v2”},{“k3”:“v3”,“k4”:“v4”}]}

jsonObject里面的jsonarray:
[{“k1”:“v1”,“k2”:“v2”},{“k3”:“v3”,“k4”:“v4”}]

jsonObject里面的jsonarray里面的第一个jsonobject:
{“k1”:“v1”,“k2”:“v2”}

jsonObject里面的jsonarray里面的第一个jsonobject里的键值对对k1取值:
v1

ps:要遍历jsonarray对象,可以通过size()方法取得jsonarray的长度,jsonarray.getJSONObject(index)取得里面JSONObject对象;如:

for(int index=0;index<jsonarray.size(),index++){}

原文链接:https://blog.csdn.net/qq_36330643/article/details/77976697

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSONObject.fromObjectJSONObject.parseObject都是用于将 JSON 字符串转换为 Java 对象的方法。但它们所属的类库不同。 1. JSONObject.fromObject:这个方法是来自于 JavaJSON-lib 库。它可以将 JSON 字符串转换为一个 JSONObject 对象,该对象可以方便地操作 JSON 数据。例如,你可以通过该对象获取特定的属性值、修改属性值、添加新的属性等。 示例代码: ``` import net.sf.json.JSONObject; // ... String jsonString = "{\"name\":\"John\", \"age\":30}"; JSONObject jsonObject = JSONObject.fromObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); System.out.println("Name: " + name); System.out.println("Age: " + age); ``` 2. JSONObject.parseObject:这个方法来自于阿里巴巴的 fastjson 库。它可以将 JSON 字符串转换为一个 Java 对象,该对象可以直接与 Java 类型进行交互。使用 parseObject 方法时,你需要指定目标对象的类型。 示例代码: ``` import com.alibaba.fastjson.JSON; // ... String jsonString = "{\"name\":\"John\", \"age\":30}"; Person person = JSON.parseObject(jsonString, Person.class); String name = person.getName(); int age = person.getAge(); System.out.println("Name: " + name); System.out.println("Age: " + age); ``` 需要注意的是,如果你使用的是 fastjson 库,你需要在项目中添加 fastjson 的依赖。对于 JSON-lib 库,你需要添加 json-lib 的依赖。 这两种方法在处理 JSON 字符串时都提供了很大的灵活性和便利性,你可以根据自己的需求选择其中之一来使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值