我有一个包含我正在制作的RPG的对话的JSON文件,并且我希望能够在它出现时将选定的名称放入其中。例如,如果玩家的名字是替换JSON字符串中的变量
public string playerName = "Leon";
,并在我的JSON我有
"NPCIDxxGreeting":{
"text": "Yo, _____, what's up?"
}
我希望能够插入“莱昂”的地方是空白的对话JSON露面。有没有办法做到这一点?
我有一个包含我正在制作的RPG的对话的JSON文件,并且我希望能够在它出现时将选定的名称放入其中。例如,如果玩家的名字是替换JSON字符串中的变量
public string playerName = "Leon";
,并在我的JSON我有
"NPCIDxxGreeting":{
"text": "Yo, _____, what's up?"
}
我希望能够插入“莱昂”的地方是空白的对话JSON露面。有没有办法做到这一点?
.NET支持Json转换。所以基本上你只是读取文件内容并解析JSON信息。
例
public class Stats
{
public int attack;
public string playerName;
public float speed;
......
}
public static List<string>GetJson()
{
using (StreamReader r = new StreamReader("file.json"))
{
string json = r.ReadToEnd();
List<Stats> stats = JsonConvert.DeserializeObject<List<Stats>>(json);
return stats ;
}
}
什么你想要做的是在你的字符串与另一个字符串替换的令牌。如果您的JSON文件是这样的:
{
"NPCIDxxGreeting":{
"text": "Yo, $name, what's up?"
}
}
可以加载这个字符串,然后用playerName
变量替换$name$
。
如果您使用JSON.NET,您可以解析JSON文件是这样的:
dynamic dialogue = JObject.Parse(json);
然后拉出串并更换$name
令牌:
var greeting = dialogue["NPCIDxxGreeting"].text.ToString();
var playerGreeting = greeting.Replace("$name", playerName);
这里有一个小提琴演示它:Replace variable in JSON
使用令牌和string.Replace。例如'var greeting =“hello $ name”'和'greeting.Replace(“$ name”,“Leon”)' – DavidG