蓝奏下载原文档。
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上面的那个循环