我正在使用.json文件来保存应用程序的字体/文本信息。现在我正在添加不同的语言,我需要能够为某些字体指定不同的大小,因为该语言中单词的大小不同,例如德语单词往往比英语长,所以我可能想要一个较小的字体。
我的问题是我的.json文件中会有大量重复数据,因为大多数字体对于每种语言都保持不变。以下是我想以某种方式减少重复数据的示例,我只是不知道如何格式化我的.json文件(注意我已经删除了很多细节,所以这将更容易阅读):< / p>
"styles":
{
"en":
{
"main_title" :
{
"font" : "font://verdana-bold.ttf",
"size" : 25,
},
"heading" :
{
"font" : "font://verdana-bold.ttf",
"size" : 18,
},
},
"de":
{
"main_title" :
{
"font" : "font://verdana-bold.ttf",
"size" : 25,
},
"heading" :
{
"font" : "font://verdana-bold.ttf",
"size" : 16,
},
},
"fr":
{
"main_title" :
{
"font" : "font://verdana-bold.ttf",
"size" : 25,
},
"heading" :
{
"font" : "font://verdana-bold.ttf",
"size" : 18,
},
}
}
请注意,在上面的示例中,我有三种语言,并且所有使用相同的字体信息,但使用较小的“heading”字体的deutsche除外。我想做的是这样的事情:
"styles":
{
"en", "de", "fr":
{
"main_title" :
{
"font" : "font://verdana-bold.ttf",
"size" : 25,
},
"heading" :
{
"font" : "font://verdana-bold.ttf",
"size" : 18,
},
},
"de":
{
"heading" :
{
"font" : "font://verdana-bold.ttf",
"size" : 16,
},
},
}
在这个例子中,我让所有三种语言使用相同的信息,但能够在deutsche语言字体中定义一个更改。显然,我的第二个例子将无法正确阅读,因为它的语法不正确,但希望这可以解决我想要实现的目标。 JSON中是否有任何语法可以让我做这样的事情?
答案 0 :(得分:1)
我不相信JSON会这样做,但你可以有一个'默认'对象,这些数据的使用者可以查看其他语言对象中缺少的任何值:
"styles": {
"default": {
"main_title" : {
"font" : "font://verdana-bold.ttf",
"size" : 25,
},
"heading" : {
"font" : "font://verdana-bold.ttf",
"size" : 18,
},
},
"de": {
"heading" : {
"size" : 16,
}
}
}
如果您需要指定允许哪些语言,只需将其添加为对象的另一个属性:
"styles": {
"languages": ["en", "de", "fr"],
...
}