请问哪位大佬会JSON格式转换提取正确答案和题目,正确的是绿色,错误的是红色,谢谢

蓝奏下载原文档。
https://wwx.lanzoui.com/iEtPbpq4hre    帮我做一下 谢谢大佬


isRightFlag ":1,"是正确答案  0不是正确答案
请问哪位大佬会JSON格式转换提取正确答案和题目,正确的是绿色,错误的是红色,谢谢
son格式
json是一种与语言无关的数据交换的格式,使用Json的格式与解析方便的可以表示一个对象信息,json有两种格式:①对象格式:{"key1":obj,"key2":obj,"key3":obj...}、②数组/集合格式:[obj,obj,obj...]。
json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。与json对象不同的是,json数据格式的属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。json的另外一个数据格式是数组,和javascript中的数组字面量相同。

类型这种的代码 格式改成html  谢谢各位大佬了

 

<!DOCTYPE html>
<html lang="en">
    
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>答案</title>
</head>
    
<body>
    <textarea name="text" style="width:100%;height:100px;" id="responsedate"></textarea>
    <br />
    <button style="width:100%;height:100px;float:right;" id="tj">答案</button>
    <script>
        function getAnswer() {
            var responseDate1 = document.getElementById("responsedate").value;
            try {
                responseDate1 = JSON.parse(responseDate1)
                let k = 0;
                for (let j in (responseDate1.data.tAnswerList)) {
                    k = k + 1;
                    document.write("<p>" + k + "." + (responseDate1.data.tAnswerList[j].tSubjectContent) + "</p></br>");
                    for (let i in (responseDate1.data.tAnswerList[j].tOptionList)) {
                        if ((responseDate1.data.tAnswerList[j].tOptionList[i].tTrue) == 1) {
                        document.write("<p style='color:green;'>" + (responseDate1.data.tAnswerList[j].tOptionList[i].tOptionContent) + " (选)</p></br>");
                    }
                    if ((responseDate1.data.tAnswerList[j].tOptionList[i].tTrue) == 0) {
                        document.write("<p style='color:red;'>" + (responseDate1.data.tAnswerList[j].tOptionList[i].tOptionContent) + " (不选)</p></br>");
                    }
                    }
                }
            } catch (error) {
                console.log(error)
                alert('输入格式有误(不是标准json)')
            }
        }
    
        // 监听回车
        document.onkeydown = function (event) {
            var e = event || window.event || arguments.callee.caller.arguments[0];
            if (e && e.keyCode == 13) {
                getAnswer()
            }
        }; 
        tj.onclick=getAnswer;
    </script>
</body>
    
</html>

 

 

解决了你的问题可以点击采纳支持下哦。。谢谢~~

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>答案</title>
</head>
<body>
    <textarea name="text" style="width:100%;height:100px;" id="responsedate"></textarea>
    <br />
    <button style="width:100%;height:100px;float:right;" id="tj">答案</button>
    <div id="dvRst"></div>
    <script>
        function getAnswer() {
            var responseDate1 = document.getElementById("responsedate").value;
            try {
                responseDate1 = JSON.parse(responseDate1);
                var s = '';
                responseDate1.data.subjectList.forEach((item,index) => {
                    s += '<p>' + (index + 1) + '.' + item.subjectTitle + '</p>';
                    item.subjectOptionVOList.forEach(item => {
                        s += '<p style="color:' + (item.isRightFlag ? 'green' : 'red') + '">' + item.optionTitle + '(' + (item.isRightFlag?'':'不')+'选)';
                    })
                });
                document.getElementById('dvRst').innerHTML = s;
            } catch (error) {
                console.log(error)
                alert('输入格式有误(不是标准json)')
            }
        }
        // 监听回车
        document.onkeydown = function (event) {
            var e = event || window.event || arguments.callee.caller.arguments[0];
            if (e && e.keyCode == 13) {
                getAnswer()
            }
        };
        tj.onclick=getAnswer;
    </script>
</body>
</html>

你这个json不完整,无法解析

F12 抓包 就是这种数据的 那咋办

package com.xm.officialaccounts.utils;

import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author 
 * @date created in 10:53 2021/6/3
 */
@Data
@NoArgsConstructor
@Builder
public class question {
    // 题目
    String subjectTitle;

    List<optionsVo> subjectOptionVOList;

    public question(String subjectTitle, List<optionsVo> subjectOptionVOList) {
        this.subjectTitle = subjectTitle;
        this.subjectOptionVOList = subjectOptionVOList;
    }
}
package com.xm.officialaccounts.utils;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author 
 * @date created in 10:52 2021/6/3
 */
@Data
@NoArgsConstructor
public class optionsVo {
    //
    Integer isRightFlag;
    // 正确答案
    String optionTitle;

    public optionsVo(Integer isRightFlag, String optionTitle) {
        this.isRightFlag = isRightFlag;
        this.optionTitle = optionTitle;
    }
}
package com.xm.officialaccounts.utils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author 
 * @date created in 10:16 2021/6/3
 */
@Data
@NoArgsConstructor
public class JsonRead {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader(new File("C:\\Users\\Administrator\\Downloads\\格式化工具.txt")));
        StringBuffer jsonStr = new StringBuffer();
        String str;
        while ((str = br.readLine())!=null){
            jsonStr.append(str);
        }
        JSONObject reponse = JSONObject.parseObject(jsonStr.toString());
        JSONObject jsonObject = reponse.getJSONObject("data");
        JSONArray array = jsonObject.getJSONArray("subjectList");
        List<question> questions = array.toJavaList(question.class);
        for (question question1 : questions) {
            question1.getSubjectOptionVOList().stream().filter(t -> {
                return t.getIsRightFlag() == 1;
            }).collect(Collectors.toList());
        }
        question question;
        for (int i = 0; i < questions.size(); i++) {
            question = questions.get(i);
            System.out.println("问题"+i+":"+question.getSubjectTitle());
            System.out.println("答案:");
            question.getSubjectOptionVOList().stream().map(optionsVo::getOptionTitle).forEach(System.out::println);
        }
    }
}

把你的json文件用在线工具格式化一下,服了,没有格式化我代码一直测不出是什么问题。格式化一下就没问题了。

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

for (let j in (responseDate1.data.subjectList)) {
    k = k + 1;
    document.write("<p>" + k + "." + (responseDate1.data.subjectList[j].subjectTitle) + "</p></br>");
    for (let i in (responseDate1.data.subjectList[j].subjectOptionVOList)) {
        if ((responseDate1.data.subjectList[j].subjectOptionVOList[i].isRightFlag) == 1) {
            document.write("<p style='color:green;'>" + (responseDate1.data.subjectList[j].subjectOptionVOList[i].optionTitle) + " (选)</p></br>");
        }
        if ((responseDate1.data.tAnswerList[j].tOptionList[i].tTrue) == 0) {
            document.write("<p style='color:red;'>" + (responseDate1.data.subjectList[j].subjectOptionVOList[i].optionTitle) + " (不选)</p></br>");
        }
    }
}

 

替换你html上面的那个循环

https://wwx.lanzoui.com/iCMo7pzss6h   原图信息