String、JSONObject、JSONArray之间互相转换

首先在maven中添加阿里的fastjson依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.68</version>
</dependency>

1.String转JSONObject

格式:JSONObject parseObject(String text)
其中:text为JSONObject格式的字符串,如:{"k1":"v1","k2":"v2"}

String s1 = "{\"datasetId\":602,\"cfg\":\"\"}";
JSONObject jsonObject = JSONObject.parseObject(s1);

2.String转JSONArray

格式:JSONArray parseArray(String text)
其中:text为JSONArray格式的字符串,如:[{"k1":"v1","k2":"v2"},{"k3":"v3"}]

String s2 = "[{\"column\":\"amount\",\"aggType\":\"sum\"}]";
JSONArray jsonArray = JSONArray.parseArray(s2);

3.JSONObject中的数据提取为JSONArray

格式:JSONArray getJSONArray(String key)
其中:key为JSONObject对象中的某个key,且对应的value应是JSONArray格式的,如:{"k1":[{"k2":"v2"},{"k3":"v3"}]}

String s3 = "{\"datasetId\":602,\"values\":[{\"column\":\"amount\",\"aggType\":\"sum\"}]}";
JSONObject jsonObject3 = JSONObject.parseObject(s3);
JSONArray jsonArray3 = jsonObject3.getJSONArray("values");

4.JSONArray提取为JSONObject

格式:JSONObject getJSONObject(int index)
其中:getJSONObject的对象为array类型,index为数组下标

String s4 = "[{\"columnName\":\"assets_group\",\"filterType\":\"≠\",\"values\":[\"苹果\"]},{\"columnName\":\"audit_date\",\"filterType\":\"[a,b]\",\"values\":[\"2020-03-15\",\"2020-04-15\"]},null]";
JSONArray jsonArray4 = JSONArray.parseArray(s4);
JSONObject jsonObject4 = jsonArray4.getJSONObject(0);

5.JSONObject获取value

格式:Object get(Object key)

jsonObject.get("datasetId")

6.Map转JSONstring

直接返回map其实就是json格式

JSONUtils.toJSONString(map);

7.JSON转实体类

格式:JSON.parseObject(string,A.class)

DatasourceConfig datasourceConfig = JSON.parseObject(config, DatasourceConfig.class);

8.实体类转JSON

JSONObject.toJSONString(object)

 

参考:https://www.cnblogs.com/ljangle/p/11047111.html

 
这段程序使用了混合同余法生成一组随机数,并进行了统计分析和绘图。下面是对程序的详细分析: 1. 清除工作空间和命令窗口中的变量和内容。 ```matlab clear clc ``` 2. 初始化一些参数和变量。 ```matlab A = 65539; % 常数 A N = 1200; % 序列的个数 x0 = 1; % 初始值 x0 M = 2147483647; % 常数 M C = 1; % 常数 C ``` 3. 使用 for 循环生成随机数序列。 ```matlab for k = 1:N y = A * x0 + C; % 计算 y 值 x1 = mod(y, M); % 对 y 取模得到 x1 v1 = x1 / 2147483647; % 计算 v1,将 x1 中的数除以 M 得到小于 1 的随机数 v(:, k) = v1; % 将 v1 存入数组 v 中 x0 = x1; % 更新 x0 的值为 x1,为下一次循环准备 v0 = v1; % 将 v1 存入变量 v0 中(这个变量好像没有被使用到) end v2 = v; % 将 0-1 随机数保存到 v2 中 ``` 4. 计算生成的随机数序列的平均值和方差,并将结果输出到命令窗口。 ```matlab ave = mean(v) % 计算平均值 var = var(v) % 计算方差 k1 = k % 将循环变量 k 的值保存到 k1 中(这个变量好像没有被使用到) save v % 将生成的随机数序列保存到文件 v 中 ``` 5. 绘制生成的随机数序列的图像。 ```matlab k = 1:k1; % 创建一个序列,用于横坐标 plot(k, v, 'b'); % 绘制图像,横坐标为 k,纵坐标为 v,线条颜色为蓝色 xlabel('k'); ylabel('v'); title('(0-1)'); % 添加横坐标、纵坐标和标题 ``` 6. 创建一个新的图形窗口,绘制生成的随机数序列的直方图。 ```matlab figure; [num, val] = hist(v, 10); % 计算 v 中每个值在 10 个区间内的频数 num1 = num / N; % 将频数转换为频率分布 hist(v, 10); % 绘制直方图 ``` 7. 创建另一个新的图形窗口,绘制生成的随机数序列的频率分布图。 ```matlab figure; plot(val, num1, 'b'); % 绘制频率分布图,横坐标为 val,纵坐标为 num1,线条颜色为蓝色 ``` 这样,程序就完成了生成随机数序列、统计分析和绘图的过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值