2016-06-10 214 views
1

我有一个包含我正在制作的RPG的对话的JSON文件,并且我希望能够在它出现时将选定的名称放入其中。例如,如果玩家的名字是替换JSON字符串中的变量

public string playerName = "Leon"; 

,并在我的JSON我有

"NPCIDxxGreeting":{ 
    "text": "Yo, _____, what's up?" 
} 

我希望能够插入“莱昂”的地方是空白的对话JSON露面。有没有办法做到这一点?

+2

使用令牌和string.Replace。例如'var greeting =“hello $ name”'和'greeting.Replace(“$ name”,“Leon”)' – DavidG

回答

0

.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 ; 
    } 
} 
0

什么你想要做的是在你的字符串与另一个字符串替换的令牌。如果您的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