我有一個包含我正在製作的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