json数据根式的转换

string转化为json

1 import org.json.JSONArray;
 2 import org.json.JSONException;
 3 import org.json.JSONObject;
 4 
 5 //别忘了添加上JSON包哦!
 6 public class StringToJSON {
 7     public static void main(String[] args) throws JSONException{
 8         
 9         System.out.println("abc");
10         //定义JSON字符串
11         String jsonStr = "{\"id\": 2," + 
12                 " \"title\": \"json title\", " + 
13                 "\"config\": {" +
14                     "\"width\": 34," +
15                     "\"height\": 35," +
16                 "}, \"data\": [" +
17                     "\"JAVA\", \"JavaScript\", \"PHP\"" +
18                 "]}";
19         
20         //转换成为JSONObject对象
21         JSONObject jsonObj = new JSONObject(jsonStr);
22         
23         //从JSONObject对象中获取数据
24         JavaBean bean = new JavaBean();
25         
26         //根据属性名称获取int型数据;
27         bean.setId(jsonObj.getInt("id"));     
28         
29         //根据属性名获取String数据;
30         bean.setTitle(jsonObj.getString("title")); 
31         
32         //根据属性名获取JSONObject类
33         JSONObject config = jsonObj.getJSONObject("config");
34         bean.setWidth(config.getInt("width"));
35         bean.setHeight(config.getInt("height"));
36         
37         //根据属性名获取JSONArray数组
38         JSONArray data = jsonObj.getJSONArray("data");
39         for(int index = 0, length = data.length(); index < length; index++) {
40             //这里在org.json.JSONArray对象中居然没有找到toArray方法,求各位网友给出解决办法啊!
41 //            bean.setLanguages(String[]);
42         }        
43     }
44 }
45 
46 class JavaBean{
47     private int id ;
48     private String title;
49     private int width;
50     private int height;
51     private String[] languages;
52 
53         //这里省略了设置器和访问器
54 }


json转化为字符串
 public static void main(String[] args) throws JSONException {
 2         
 3         //创建JSONObject对象
 4         JSONObject json = new JSONObject();
 5         
 6         //向json中添加数据
 7         json.put("username", "wanglihong");
 8         json.put("height", 12.5);
 9         json.put("age", 24);
10         
11         //创建JSONArray数组,并将json添加到数组
12         JSONArray array = new JSONArray();
13         array.put(json);
14         
15         //转换为字符串
16         String jsonStr = array.toString();
17         
18         System.out.println(jsonStr);
19     }


public function homeworkToAiWork(){ try { $param = input(); $homework_id = $param['homework_id']; if (!$homework_id){ return ; } $results = []; // 存储每个作业的独立结果 $studentId = null; $assignment_id = 0; $homeworkList = Db::name("homework")->where("id",'in',$homework_id)->select(); if (count($homeworkList) > 0){ foreach ($homeworkList as $homework){ $assignment= Db::name("homework_assignment_relation")->where("homework_id",$homework['id'])->find(); // var_dump($assignment); $assignment_id = $assignment['assignment_id']; if (isset($homework) && $homework['status'] == 0){ $studentId = $homework['student_id']; $homework_id = $homework['id']; $originalImagePath = $homework['original_image']; //补全url地址 $publicPath = ROOT_PATH . 'public'.$originalImagePath; $response = $this->callDeepSeekAPI($publicPath); $resource = $response['resource']; if (!empty($response['resource'])) { $resource = json_decode($response['resource'], true); var_dump($resource); // 每个作业独立保存结果 $results[] = [ 'homework_id' => $homework['id'], 'list' => $resource['list'] ?? [], 'knowledge' => $resource['knowledge'] ?? '', 'comment' => $resource['comment'] ?? '', 'subject' => $resource['subject'] ?? '', 'original_image' => $homework['original_image'] ]; var_dump($results); // 更新作业状态 Db::name("homework")->where("id", $homework['id'])->update(['status' => 1]); foreach ($resource['list'] as $value){ $timuRecord = TimuRecord::create([ 'student_id' => $studentId, 'homework_id' => $homework_id, 'question' => $value['question'], 'correct' => $value['correct']=='正确'?1:2, 'answer' => $value['answer'], ]); } } } } foreach ($results as $result) { HomeworkCorrections::create([ 'student_id' => $studentId, 'assignment_id' => $assignment_id, 'get_ai_content' => json_encode($result, JSON_UNESCAPED_UNICODE), 'comment' => $result['comment'], 'subject' => $result['subject'], 'original_image' => $result['original_image'] ]); } return json([ 'code' => 200, 'msg' => '批改成功', 'data' => $results // 返回每个作业的独立结果 ]); } }catch (\Exception $e){ $this->error( '提交失败:' . $e->getMessage()); } }输出array(3) { ["list"]=> array(7) { [0]=> array(4) { ["question"]=> string(58) "1. 下列式子中,属于最简二次根式的是( )" ["answer"]=> string(207) "A. $sqrt{frac{1}{2}}$不是最简二次根式,因为被开方数含有分母;B. $sqrt{8} = 2sqrt{2}$不是最简二次根式;C. $sqrt{9} = 3$不是最简二次根式;D. $sqrt{5}$是最简二次根式" ["correct"]=> string(6) "正确" ["explained"]=> string(226) "最简二次根式需满足被开方数中不含能开得尽方的因数或因式且被开方数不含分母。A选项被开方数有分母,B选项可简,C选项可简,只有D选项符合最简二次根式定义。" } [1]=> array(4) { ["question"]=> string(91) "2. 下列各组数中,以它们为边长的线段不能构成直角三角形的是( )" ["answer"]=> string(241) "根据勾股定理逆定理判断。A. $3^2 + 4^2 = 5^2$,能构成直角三角形;B. $4^2 + 5^2 eq 6^2$,不能构成直角三角形;C. $5^2 + 12^2 = 13^2$,能构成直角三角形;D. $9^2 + 12^2 = 15^2$,能构成直角三角形" ["correct"]=> string(6) "正确" ["explained"]=> string(109) "直角三角形需满足两短边平方和等于长边平方。A、C、D选项均满足,B选项不满足。" } [2]=> array(4) { ["question"]=> string(61) "3. 下列一元二次方程中,没有实数根的是( )" ["answer"]=> string(423) "对于一元二次方程$ax^2 + bx + c = 0$,判别式$Delta = b^2 - 4ac$,当$Delta < 0$时无实数根。A. $x^2 - 2x = 0$,$Delta = (-2)^2 - 4×1×0 = 4 > 0$,有实数根;B. $x^2 + 4x - 4 = 0$,$Delta = 4^2 - 4×1×(-4) = 32 > 0$,有实数根;C. $(x - 2)^2 - 3 = 0$即$x^2 - 4x + 1 = 0$,$Delta = (-4)^2 - 4×1×1 = 12 > 0$,有实数根;D. $3x^2 + 2 = 0$,$Delta = 0 - 4×3×2 = -24 < 0$,无实数根" ["correct"]=> string(6) "正确" ["explained"]=> string(89) "通过判别式判断方程根的情况,D选项判别式小于0,所以无实数根。" } [3]=> array(4) { ["question"]=> string(168) "4. 甲,乙两地7月上旬的日平均气温如图所示,则甲,乙两地这10天中日平均气温的方差$S_{甲}^{2}$与$S_{乙}^{2}$的大小关系是( )" ["answer"]=> string(120) "数据波动越大,方差越大。从图中可看出甲地气温波动比乙地大,所以$S_{甲}^{2} > S_{乙}^{2}$" ["correct"]=> string(6) "正确" ["explained"]=> string(99) "方差反映数据的离散程度,甲地气温波动明显大于乙地,所以甲地方差大。" } [4]=> array(4) { ["question"]=> string(79) "5. 在下列四个选项中,不符合直线$y = 3x + 2$的性质的是( )" ["answer"]=> string(256) "A. $k = 3 > 0$,$b = 2 > 0$,直线经过第一、二、三象限;B. $k = 3 > 0$,$y$随$x$的增大而增大;C. 令$y = 0$,得$x = -frac{2}{3}$,与$x$轴相交于点$(-frac{2}{3}, 0)$;D. 令$x = 0$,得$y = 2$,与$y$轴相交于点$(0, 2)$" ["correct"]=> string(6) "正确" ["explained"]=> string(88) "根据一次函数$y = kx + b$的性质分析,C选项中与$x$轴交点计算错误。" } [5]=> array(4) { ["question"]=> string(82) "6. 用配方法解方程$x^2 - 8x + 9 = 0$,变形后的结果正确的是( )" ["answer"]=> string(103) "$x^2 - 8x + 9 = 0$,移项得$x^2 - 8x = -9$,配方:$x^2 - 8x + 16 = -9 + 16$,即$(x - 4)^2 = 7$" ["correct"]=> string(6) "正确" ["explained"]=> string(105) "配方法是在方程两边加上一次项系数一半的平方,将方程左边配成完全平方式。" } [6]=> array(4) { ["question"]=> string(119) "7. 在四边形$ABCD$中,$AB parallel CD$,下列条件,不能得出四边形$ABCD$是平行四边形的是( )" ["answer"]=> string(364) "A选项$AB = CD$,一组对边平行且相等可判定平行四边形;B选项$BC = AD$,一组对边相等不能判定平行四边形;C选项$angle A + angle B = 180^{circ}$,可推出$AD parallel BC$,两组对边分别平行可判定平行四边形;D选项$angle A = angle C$,结合$AB parallel CD$可推出$AD parallel BC$,可判定平行四边形" ["correct"]=> string(6) "正确" ["explained"]=> string(73) "根据平行四边形的判定定理分析,B选项条件不能判定。" } } ["subject"]=> string(6) "数学" ["comment"]=> string(446) "这份八年级数学期末考试选择题部分题目涵盖了二次根式、勾股定理逆定理、一元二次方程根的判别式、一次函数性质、配方法解方程以及平行四边形判定等知识点,题目类型较为全面,难度适中,能考查学生对本学期基础知识的掌握情况。答题纸书写较为清晰,但部分题目解答中存在书写不规范问题,如第5题C选项交点坐标计算错误。" } array(1) { [0]=> array(6) { ["homework_id"]=> int(519) ["list"]=> array(7) { [0]=> array(4) { ["question"]=> string(58) "1. 下列式子中,属于最简二次根式的是( )" ["answer"]=> string(207) "A. $sqrt{frac{1}{2}}$不是最简二次根式,因为被开方数含有分母;B. $sqrt{8} = 2sqrt{2}$不是最简二次根式;C. $sqrt{9} = 3$不是最简二次根式;D. $sqrt{5}$是最简二次根式" ["correct"]=> string(6) "正确" ["explained"]=> string(226) "最简二次根式需满足被开方数中不含能开得尽方的因数或因式且被开方数不含分母。A选项被开方数有分母,B选项可简,C选项可简,只有D选项符合最简二次根式定义。" } [1]=> array(4) { ["question"]=> string(91) "2. 下列各组数中,以它们为边长的线段不能构成直角三角形的是( )" ["answer"]=> string(241) "根据勾股定理逆定理判断。A. $3^2 + 4^2 = 5^2$,能构成直角三角形;B. $4^2 + 5^2 eq 6^2$,不能构成直角三角形;C. $5^2 + 12^2 = 13^2$,能构成直角三角形;D. $9^2 + 12^2 = 15^2$,能构成直角三角形" ["correct"]=> string(6) "正确" ["explained"]=> string(109) "直角三角形需满足两短边平方和等于长边平方。A、C、D选项均满足,B选项不满足。" } [2]=> array(4) { ["question"]=> string(61) "3. 下列一元二次方程中,没有实数根的是( )" ["answer"]=> string(423) "对于一元二次方程$ax^2 + bx + c = 0$,判别式$Delta = b^2 - 4ac$,当$Delta < 0$时无实数根。A. $x^2 - 2x = 0$,$Delta = (-2)^2 - 4×1×0 = 4 > 0$,有实数根;B. $x^2 + 4x - 4 = 0$,$Delta = 4^2 - 4×1×(-4) = 32 > 0$,有实数根;C. $(x - 2)^2 - 3 = 0$即$x^2 - 4x + 1 = 0$,$Delta = (-4)^2 - 4×1×1 = 12 > 0$,有实数根;D. $3x^2 + 2 = 0$,$Delta = 0 - 4×3×2 = -24 < 0$,无实数根" ["correct"]=> string(6) "正确" ["explained"]=> string(89) "通过判别式判断方程根的情况,D选项判别式小于0,所以无实数根。" } [3]=> array(4) { ["question"]=> string(168) "4. 甲,乙两地7月上旬的日平均气温如图所示,则甲,乙两地这10天中日平均气温的方差$S_{甲}^{2}$与$S_{乙}^{2}$的大小关系是( )" ["answer"]=> string(120) "数据波动越大,方差越大。从图中可看出甲地气温波动比乙地大,所以$S_{甲}^{2} > S_{乙}^{2}$" ["correct"]=> string(6) "正确" ["explained"]=> string(99) "方差反映数据的离散程度,甲地气温波动明显大于乙地,所以甲地方差大。" } [4]=> array(4) { ["question"]=> string(79) "5. 在下列四个选项中,不符合直线$y = 3x + 2$的性质的是( )" ["answer"]=> string(256) "A. $k = 3 > 0$,$b = 2 > 0$,直线经过第一、二、三象限;B. $k = 3 > 0$,$y$随$x$的增大而增大;C. 令$y = 0$,得$x = -frac{2}{3}$,与$x$轴相交于点$(-frac{2}{3}, 0)$;D. 令$x = 0$,得$y = 2$,与$y$轴相交于点$(0, 2)$" ["correct"]=> string(6) "正确" ["explained"]=> string(88) "根据一次函数$y = kx + b$的性质分析,C选项中与$x$轴交点计算错误。" } [5]=> array(4) { ["question"]=> string(82) "6. 用配方法解方程$x^2 - 8x + 9 = 0$,变形后的结果正确的是( )" ["answer"]=> string(103) "$x^2 - 8x + 9 = 0$,移项得$x^2 - 8x = -9$,配方:$x^2 - 8x + 16 = -9 + 16$,即$(x - 4)^2 = 7$" ["correct"]=> string(6) "正确" ["explained"]=> string(105) "配方法是在方程两边加上一次项系数一半的平方,将方程左边配成完全平方式。" } [6]=> array(4) { ["question"]=> string(119) "7. 在四边形$ABCD$中,$AB parallel CD$,下列条件,不能得出四边形$ABCD$是平行四边形的是( )" ["answer"]=> string(364) "A选项$AB = CD$,一组对边平行且相等可判定平行四边形;B选项$BC = AD$,一组对边相等不能判定平行四边形;C选项$angle A + angle B = 180^{circ}$,可推出$AD parallel BC$,两组对边分别平行可判定平行四边形;D选项$angle A = angle C$,结合$AB parallel CD$可推出$AD parallel BC$,可判定平行四边形" ["correct"]=> string(6) "正确" ["explained"]=> string(73) "根据平行四边形的判定定理分析,B选项条件不能判定。" } } ["knowledge"]=> string(0) "" ["comment"]=> string(446) "这份八年级数学期末考试选择题部分题目涵盖了二次根式、勾股定理逆定理、一元二次方程根的判别式、一次函数性质、配方法解方程以及平行四边形判定等知识点,题目类型较为全面,难度适中,能考查学生对本学期基础知识的掌握情况。答题纸书写较为清晰,但部分题目解答中存在书写不规范问题,如第5题C选项交点坐标计算错误。" ["subject"]=> string(6) "数学" ["original_image"]=> string(52) "/storage/homework_pictures/2_20250625152713_3054.jpg" } } NULL array(2) { [0]=> array(6) { ["homework_id"]=> int(519) ["list"]=> array(7) { [0]=> array(4) { ["question"]=> string(58) "1. 下列式子中,属于最简二次根式的是( )" ["answer"]=> string(207) "A. $sqrt{frac{1}{2}}$不是最简二次根式,因为被开方数含有分母;B. $sqrt{8} = 2sqrt{2}$不是最简二次根式;C. $sqrt{9} = 3$不是最简二次根式;D. $sqrt{5}$是最简二次根式" ["correct"]=> string(6) "正确" ["explained"]=> string(226) "最简二次根式需满足被开方数中不含能开得尽方的因数或因式且被开方数不含分母。A选项被开方数有分母,B选项可简,C选项可简,只有D选项符合最简二次根式定义。" } [1]=> array(4) { ["question"]=> string(91) "2. 下列各组数中,以它们为边长的线段不能构成直角三角形的是( )" ["answer"]=> string(241) "根据勾股定理逆定理判断。A. $3^2 + 4^2 = 5^2$,能构成直角三角形;B. $4^2 + 5^2 eq 6^2$,不能构成直角三角形;C. $5^2 + 12^2 = 13^2$,能构成直角三角形;D. $9^2 + 12^2 = 15^2$,能构成直角三角形" ["correct"]=> string(6) "正确" ["explained"]=> string(109) "直角三角形需满足两短边平方和等于长边平方。A、C、D选项均满足,B选项不满足。" } [2]=> array(4) { ["question"]=> string(61) "3. 下列一元二次方程中,没有实数根的是( )" ["answer"]=> string(423) "对于一元二次方程$ax^2 + bx + c = 0$,判别式$Delta = b^2 - 4ac$,当$Delta < 0$时无实数根。A. $x^2 - 2x = 0$,$Delta = (-2)^2 - 4×1×0 = 4 > 0$,有实数根;B. $x^2 + 4x - 4 = 0$,$Delta = 4^2 - 4×1×(-4) = 32 > 0$,有实数根;C. $(x - 2)^2 - 3 = 0$即$x^2 - 4x + 1 = 0$,$Delta = (-4)^2 - 4×1×1 = 12 > 0$,有实数根;D. $3x^2 + 2 = 0$,$Delta = 0 - 4×3×2 = -24 < 0$,无实数根" ["correct"]=> string(6) "正确" ["explained"]=> string(89) "通过判别式判断方程根的情况,D选项判别式小于0,所以无实数根。" } [3]=> array(4) { ["question"]=> string(168) "4. 甲,乙两地7月上旬的日平均气温如图所示,则甲,乙两地这10天中日平均气温的方差$S_{甲}^{2}$与$S_{乙}^{2}$的大小关系是( )" ["answer"]=> string(120) "数据波动越大,方差越大。从图中可看出甲地气温波动比乙地大,所以$S_{甲}^{2} > S_{乙}^{2}$" ["correct"]=> string(6) "正确" ["explained"]=> string(99) "方差反映数据的离散程度,甲地气温波动明显大于乙地,所以甲地方差大。" } [4]=> array(4) { ["question"]=> string(79) "5. 在下列四个选项中,不符合直线$y = 3x + 2$的性质的是( )" ["answer"]=> string(256) "A. $k = 3 > 0$,$b = 2 > 0$,直线经过第一、二、三象限;B. $k = 3 > 0$,$y$随$x$的增大而增大;C. 令$y = 0$,得$x = -frac{2}{3}$,与$x$轴相交于点$(-frac{2}{3}, 0)$;D. 令$x = 0$,得$y = 2$,与$y$轴相交于点$(0, 2)$" ["correct"]=> string(6) "正确" ["explained"]=> string(88) "根据一次函数$y = kx + b$的性质分析,C选项中与$x$轴交点计算错误。" } [5]=> array(4) { ["question"]=> string(82) "6. 用配方法解方程$x^2 - 8x + 9 = 0$,变形后的结果正确的是( )" ["answer"]=> string(103) "$x^2 - 8x + 9 = 0$,移项得$x^2 - 8x = -9$,配方:$x^2 - 8x + 16 = -9 + 16$,即$(x - 4)^2 = 7$" ["correct"]=> string(6) "正确" ["explained"]=> string(105) "配方法是在方程两边加上一次项系数一半的平方,将方程左边配成完全平方式。" } [6]=> array(4) { ["question"]=> string(119) "7. 在四边形$ABCD$中,$AB parallel CD$,下列条件,不能得出四边形$ABCD$是平行四边形的是( )" ["answer"]=> string(364) "A选项$AB = CD$,一组对边平行且相等可判定平行四边形;B选项$BC = AD$,一组对边相等不能判定平行四边形;C选项$angle A + angle B = 180^{circ}$,可推出$AD parallel BC$,两组对边分别平行可判定平行四边形;D选项$angle A = angle C$,结合$AB parallel CD$可推出$AD parallel BC$,可判定平行四边形" ["correct"]=> string(6) "正确" ["explained"]=> string(73) "根据平行四边形的判定定理分析,B选项条件不能判定。" } } ["knowledge"]=> string(0) "" ["comment"]=> string(446) "这份八年级数学期末考试选择题部分题目涵盖了二次根式、勾股定理逆定理、一元二次方程根的判别式、一次函数性质、配方法解方程以及平行四边形判定等知识点,题目类型较为全面,难度适中,能考查学生对本学期基础知识的掌握情况。答题纸书写较为清晰,但部分题目解答中存在书写不规范问题,如第5题C选项交点坐标计算错误。" ["subject"]=> string(6) "数学" ["original_image"]=> string(52) "/storage/homework_pictures/2_20250625152713_3054.jpg" } [1]=> array(6) { ["homework_id"]=> int(520) ["list"]=> array(0) { } ["knowledge"]=> string(0) "" ["comment"]=> string(0) "" ["subject"]=> string(0) "" ["original_image"]=> string(52) "/storage/homework_pictures/2_20250625152713_5642.jpg" } } {"code":0,"msg":"提交失败:Trying to access array offset on value of type null","time":"1750836433","data":null}
06-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值