让我们举个例子:
第1行:1. Rxe8+ Rxe8 2. Qxe8#
第2行:1. Qxe8+ Rxe8 2. Rxe8#
我可以用JSON表示
{
'Rxe8+': {
'Rxe8': {
'Qxe8#': {}
}
},
'Qxe8+': {
'Rxe8': {
'Rxe8#': {}
}
}
}
您能建议一种简单的格式以字符串形式指定此组合线吗?
答案 0 :(得分:0)
一个好的方法是重写JSON功能(JSON.stringify将隐式调用.toJSON
),因此您可以定义一个自定义变量并使用它。
var sequence = "1. Rxe8+ Rxe8 2. Qxe8#";
function MoveList(sequence){
this.sequence = sequence;
}
MoveList.prototype.toJSON = function(){
var moveSet = {};
var moves = this.sequence.split(" ");
for(var i = 0; i < moves.length; i+=3){
var moveNumber = moves[i];
var whiteMove = moves[i+1];
var blackMove = moves[i+2];
moveSet[moveNumber] = {
"White" : whiteMove
};
if(blackMove) moveSet[moveNumber].Black = blackMove;
}
return moveSet;
};
var ml = new MoveList(sequence);
var mlJson = JSON.stringify(ml);
console.log(mlJson); // As actual JSON
console.log(JSON.parse(mlJson)); // back in object form
答案 1 :(得分:-2)
由于我不太了解您的要求,因此我相信您正在寻找本机Javascript函数JSON.parse
https://www.w3schools.com/js/js_json_stringify.asp。
var stringifiedJson = JSON.stringify({hello: "test"});
变量stringifiedJson将返回{"hello": "test"}
。
如果您正在寻找如何用文本而不是编程语言表示事物的方法,请尝试XML。 https://www.w3schools.com/xml/。
<Rxe8+>
<Rxe8>
<Qxe8#>
</Qxe8#>
</Rxe8>
</Rxe8+>
等