2016-06-10 202 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