你可以寫一個模型:
public class MyModel
{
public string AString { get; set; }
}
,然後使用JSON序列化,例如Json.NET:
string readString = "{\"aString\":\"Read me please!\"}";
MyModel model = JsonConvert.DeserializeObject<MyModel>(readString);
Console.WriteLine(model.AString);
如果你不想使用第三方解決方案,您可以使用內置-in JavaScriptSerializer
class:
string readString = "{\"aString\":\"Read me please!\"}";
MyModel model = new JavaScriptSerializer().Deserialize<MyModel>(readString);
Console.WriteLine(model.AString);
現在假設你想處理你的第二JSON字符串你可以簡單地調整你的模型:
public class Wrapper
{
public MyModel Result { get; set; }
}
public class MyModel
{
public string AString { get; set; }
public string AnotherString { get; set; }
}
,然後反序列化到這個包裝類:
string readString = ... the JSON string in your second example ...;
Wrapper wrapper = JsonConvert.DeserializeObject<Wrapper>(readString);
Console.WriteLine(wrapper.Result.AString);
Console.WriteLine(wrapper.Result.AnotherString);
UPDATE:
如果你不想反序列化到一個模型,你可以直接做到這一點:
string readString = "{\"aString\":\"Read me please!\"}";
var res = (JObject)JsonConvert.DeserializeObject(readString);
Console.WriteLine(res.Value<string>("aString"));
或內置JavaScriptSerializer
類:
string readString = "{\"aString\":\"Read me please!\"}";
var serializer = new JavaScriptSerializer();
var res = (IDictionary<string, object>)serializer.DeserializeObject(readString);
Console.WriteLine(res["aString"]);
如果您知道該值,爲什麼需要閱讀它?除非你正在尋找用戶輸入的json文件?您需要先嚐試解決這個問題,併發布您嘗試過的內容。SO不在這裏只爲你寫代碼 – Takarii
@Takarii我猜在我的問題中,閱讀是錯誤的。我想從json字符串中檢索'Read me please!''進入'var readString =' – user7399041
看看http://www.newtonsoft.com/json –