ใน 1.13, ไฟล์ภาษา Minecraft ถูกเปลี่ยนจากการเป็นรูปแบบคีย์หลายค่าแบบง่าย = เป็นJSON JSON
ท้าทาย
เขียนโปรแกรมที่แปลงจากรูปแบบดั้งเดิมที่ส่งคืนสตริง JSON อินพุตสามารถใช้วิธีอินพุตมาตรฐานใด ๆ เอาต์พุตต้องเป็น json จากวิธีเอาต์พุตมาตรฐานใด ๆ
รูปแบบดั้งเดิมมีบรรทัดที่มีคู่ key = value ตัวอย่างเช่น
tile.dirt.name=Dirt
advMode.nearestPlayer=Use "@p" to target nearest player
build.tooHigh=Height limit for building is %s blocks
ควรแปลงเป็นวัตถุ JSON ขนาดใหญ่หนึ่งตัวพร้อม key = value
{
"tile.dirt.name": "Dirt",
"advMode.nearestPlayer": "Use \"@p\" to target nearest player",
"build.tooHigh": "Height limit for building is %s blocks"
}
รายละเอียดบางอย่าง
- JSON ที่ถูกต้องใด ๆ ที่ได้รับอนุญาตตราบใดที่มันมีคู่คีย์ / ค่าที่ถูกต้องเท่านั้น คอมม่าต่อท้ายได้รับอนุญาตเพราะ Minecraft ช่วยให้พวกเขา
- สิ่งเดียวที่ต้องหนีคือคำพูด (ไม่มีการขึ้นบรรทัดใหม่แบ็กสแลชหรือสิ่งอื่นที่ทำลาย json ในไฟล์ภาษาก่อนหน้า 1.13)
- ควรเว้นบรรทัดว่างไว้
- บรรทัดมีหนึ่งเท่ากับทั้งหมด
กรณีทดสอบ
การป้อนข้อมูล:
tile.dirt.name=Dirt
advMode.nearestPlayer=Use "@p" to target nearest player
build.tooHigh=Height limit for building is %s blocks
เอาท์พุท:
{
"tile.dirt.name": "Dirt",
"advMode.nearestPlayer": "Use \"@p\" to target nearest player",
"build.tooHigh": "Height limit for building is %s blocks"
}
การป้อนข้อมูล:
translation.test.none=Hello, world!
translation.test.complex=Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!
translation.test.escape=%%s %%%s %%%%s %%%%%s
translation.test.invalid=hi %
translation.test.invalid2=hi % s
translation.test.args=%s %s
translation.test.world=world
เอาท์พุท:
{
"translation.test.none": "Hello, world!",
"translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!",
"translation.test.escape": "%%s %%%s %%%%s %%%%%s",
"translation.test.invalid": "hi %",
"translation.test.invalid2": "hi % s",
"translation.test.args": "%s %s",
"translation.test.world": "world",
}
การป้อนข้อมูล:
stat.mineBlock=%1$s Mined
stat.craftItem=%1$s Crafted
stat.useItem=%1$s Used
stat.breakItem=%1$s Depleted
เอาท์พุท:
{
"stat.mineBlock": "%1$s Mined",
"stat.craftItem": "%1$s Crafted",
"stat.useItem": "%1$s Used",
"stat.breakItem": "%1$s Depleted"
}
=
หรือไม่
tile.dirt.name
กลายเป็น"block.minecraft.dirt"
?