替换JSON字符串中的变量

时间:2016-06-10 23:24:21

标签: c# json

我有一个JSON文件,其中包含我正在制作的RPG的Dialogue,我希望能够将玩家选择的名称放入其中。例如,如果玩家的名字是

public string playerName = "Leon";

在我的JSON中我有

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

我希望能够在对话JSON中出现空白区域时插入“Leon”。有没有办法做到这一点?

2 个答案:

答案 0 :(得分: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 ; 
    }
}

答案 1 :(得分:0)

您尝试做的是将字符串中的标记替换为另一个字符串。如果您的JSON文件如下所示:

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

您可以加载此字符串,然后将$name$替换为playerName变量。

如果您正在使用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