本文整理汇总了C#中JToken类的典型用法代码示例。如果您正苦于以下问题:C# JToken类的具体用法?C# JToken怎么用?C# JToken使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JToken类属于命名空间,在下文中一共展示了JToken类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RedditUser
public RedditUser(Reddit reddit, JToken json, IWebAgent webAgent)
: base(json)
{
Reddit = reddit;
WebAgent = webAgent;
JsonConvert.PopulateObject(json["data"].ToString(), this, reddit.JsonSerializerSettings);
}
示例2: Diff
public static JArray Diff(JArray source, JArray target, out bool changed, bool nullOnRemoved = false)
{
changed = source.Count != target.Count;
var diffs = new JToken[target.Count];
var commonLen = Math.Min(diffs.Length, source.Count);
for (int i = 0; i < commonLen; i++)
{
if (target[i].Type == JTokenType.Object && source[i].Type == JTokenType.Object)
{
var subchanged = false;
diffs[i] = Diff((JObject)source[i], (JObject)target[i], out subchanged, nullOnRemoved);
if (subchanged) changed = true;
}
else if (target[i].Type == JTokenType.Array && source[i].Type == JTokenType.Array)
{
var subchanged = false;
diffs[i] = Diff((JArray)source[i], (JArray)target[i], out subchanged, nullOnRemoved);
if (subchanged) changed = true;
}
else
{
diffs[i] = target[i];
if (!JToken.DeepEquals(source[i], target[i]))
changed = true;
}
}
for (int i = commonLen; i < diffs.Length; i++)
{
diffs[i] = target[i];
changed = true;
}
return new JArray(diffs);
}
示例3: Tax
public Tax(JToken jTax)
: this()
{
Kind = (string)jTax["kind"];
ID = (string)jTax["iD"];
Name = (string)jTax["name"];
}
示例4: JTokenReader
/// <summary>
/// Initializes a new instance of the <see cref="JTokenReader"/> class.
/// </summary>
/// <param name="token">The token to read from.</param>
public JTokenReader(JToken token)
{
ValidationUtils.ArgumentNotNull(token, "token");
_root = token;
_current = token;
}
示例5: InitAsync
public async Task<Comment> InitAsync(Reddit reddit, JToken json, IWebAgent webAgent, Thing sender)
{
var data = CommonInit(reddit, json, webAgent, sender);
await ParseCommentsAsync(reddit, json, webAgent, sender);
await Task.Factory.StartNew(() => JsonConvert.PopulateObject(data.ToString(), this, reddit.JsonSerializerSettings));
return this;
}
示例6: AddJOValue
protected void AddJOValue(String key, JToken value)
{
if (this.data[key] == null)
this.data.Add(key, value);
else
this.data[key].Replace(value);
}
示例7: IsMatch
public override bool IsMatch(JToken t)
{
switch (Operator)
{
case QueryOperator.And:
foreach (QueryExpression e in Expressions)
{
if (!e.IsMatch(t))
{
return false;
}
}
return true;
case QueryOperator.Or:
foreach (QueryExpression e in Expressions)
{
if (e.IsMatch(t))
{
return true;
}
}
return false;
default:
throw new ArgumentOutOfRangeException();
}
}
示例8: ProcessMessage
protected void ProcessMessage(JToken message) {
var channel = (string)message["channel"];
var chansplit = channel.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
if (chansplit.Length < 2) return;
if (chansplit[0] == "meta") {
switch (chansplit[1]) {
case "handshake":
HandshakeCallback((JObject)message);
break;
case "connect":
ConnectCallback((JObject)message);
break;
case "subscribe":
SubscribeCallback((JObject)message);
break;
case "unsubscribe":
UnsubscribeCallback((JObject)message);
break;
}
return;
}
if (message["successful"] != null) {
PublishCallback((JObject)message);
}
if (PrimaryReciever != null) {
PrimaryReciever.OnMessage((JObject)message);
}
OnReceive((JObject)message);
}
示例9: Parse
internal static MovieLinks Parse(JToken json) {
return new MovieLinks() {
Alternate = (string)json["alternate"],
Cast = (string)json["cast"],
Reviews = (string)json["reviews"]
};
}
示例10: ApplyConfiguration
/// <summary>
/// Configure our FADN Provider
/// </summary>
/// <param name="configJson">Our params in Json</param>
/// <returns>Configuration state</returns>
public async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
// Retrieve config values set by Jackett's user
ConfigData.LoadValuesFromJson(configJson);
// Check & Validate Config
ValidateConfig();
// Setting our data for a better emulated browser (maximum security)
// TODO: Encoded Content not supported by Jackett at this time
// emulatedBrowserHeaders.Add("Accept-Encoding", "gzip, deflate");
// If we want to simulate a browser
if (ConfigData.Browser.Value)
{
// Clean headers
_emulatedBrowserHeaders.Clear();
// Inject headers
_emulatedBrowserHeaders.Add("Accept", ConfigData.HeaderAccept.Value);
_emulatedBrowserHeaders.Add("Accept-Language", ConfigData.HeaderAcceptLang.Value);
_emulatedBrowserHeaders.Add("DNT", Convert.ToInt32(ConfigData.HeaderDnt.Value).ToString());
_emulatedBrowserHeaders.Add("Upgrade-Insecure-Requests", Convert.ToInt32(ConfigData.HeaderUpgradeInsecure.Value).ToString());
_emulatedBrowserHeaders.Add("User-Agent", ConfigData.HeaderUserAgent.Value);
_emulatedBrowserHeaders.Add("Referer", LoginUrl);
}
await DoLogin();
return IndexerConfigurationStatus.RequiresTesting;
}
示例11: ApplyConfiguration
public async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
var loginPage = await RequestStringWithCookies(LoginUrl);
CQ loginDom = loginPage.Content;
var loginPostUrl = loginDom["#login"].Attr("action");
configData.LoadValuesFromJson(configJson);
var pairs = new Dictionary<string, string> {
{ "username", configData.Username.Value },
{ "password", configData.Password.Value }
};
// Get inital cookies
CookieHeader = string.Empty;
var response = await RequestLoginAndFollowRedirect(SiteLink + loginPostUrl, pairs, CookieHeader, true, null, LoginUrl);
await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("Velkommen tilbage"), () =>
{
CQ dom = response.Content;
var messageEl = dom["inputs"];
var errorMessage = messageEl.Text().Trim();
throw new ExceptionWithConfigData(errorMessage, configData);
});
var profilePage = await RequestStringWithCookies(ProfileUrl, response.Cookies);
CQ profileDom = profilePage.Content;
var passKey = profileDom["input[name=resetkey]"].Parent().Text();
passKey = passKey.Substring(0, passKey.IndexOf(' '));
configData.RSSKey.Value = passKey;
SaveConfig();
return IndexerConfigurationStatus.RequiresTesting;
}
示例12: FillObject
public static PhoneCall FillObject(JToken data)
{
DateTime IndianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
PhoneCall Phonecall = new PhoneCall();
Phonecall.Action = "1";
Phonecall.AgentNumber = data["agent_number"].ToString();
Phonecall.BusinessCallType = data["business_call_type"].ToString();
Phonecall.CallDuration = (data["duration"] != null) ? data["duration"].ToString() : "0";
Phonecall.CallId = data["uuid"].ToString();
Phonecall.CallType = data["call_direction"].ToString();
Phonecall.CallerId = "";
Phonecall.CustomerNumber = data["customer_number"].ToString();
Phonecall.Destination = "";
Phonecall.DispNumber = data["knowlarity_number"].ToString();
//Phonecall.EndTime = "2015-09-01 11:35:52.090392+05:30";
Phonecall.EndTime = IndianTime.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss.ffffff+5:30");
Phonecall.Extension = "5";
Phonecall.HangupCause = "900";
Phonecall.ResourceUrl = (data["call_recording"] != null) ? data["call_recording"].ToString() : String.Empty;
Phonecall.StartTime = "2015-08-11 11:35:47+05:30";
Phonecall.Timezone = "Asia/Kolkata";
Phonecall.Type = "";
return Phonecall;
}
示例13: ConvertEditorConfig
/// <summary>
/// Converts the specified <code>token</code> into an instance of <code>IGridEditorConfig</code>.
/// </summary>
/// <param name="editor"></param>
/// <param name="token">The instance of <code>JToken</code> representing the editor config.</param>
/// <param name="config">The converted config.</param>
public bool ConvertEditorConfig(GridEditor editor, JToken token, out IGridEditorConfig config) {
config = null;
switch (editor.Alias) {
case "media_wide":
case "media_wide_cropped":
config = GridEditorMediaConfig.Parse(editor, token as JObject);
break;
case "banner_headline":
case "banner_tagline":
case "headline_centered":
case "abstract":
case "paragraph":
case "quote_D":
case "code":
config = GridEditorTextConfig.Parse(editor, token as JObject);
break;
}
return config != null;
}
示例14: ConvertControlValue
/// <summary>
/// Converts the specified <code>token</code> into an instance of <code>IGridControlValue</code>.
/// </summary>
/// <param name="control">The parent control.</param>
/// <param name="token">The instance of <code>JToken</code> representing the control value.</param>
/// <param name="value">The converted value.</param>
public bool ConvertControlValue(GridControl control, JToken token, out IGridControlValue value) {
value = null;
switch (control.Editor.Alias) {
case "media_wide":
case "media_wide_cropped":
value = GridControlMediaValue.Parse(control, token as JObject);
break;
case "banner_headline":
case "banner_tagline":
case "headline_centered":
case "abstract":
case "paragraph":
case "quote_D":
case "code":
value = GridControlTextValue.Parse(control, token);
break;
}
return value != null;
}
示例15: ToObject
private static object ToObject(JToken token)
{
if (token.Type == JTokenType.Object)
{
Dictionary<string, object> dict = new Dictionary<string, object>();
foreach (JProperty prop in token)
{
dict.Add(prop.Name, ToObject(prop.Value));
}
return dict;
}
else if (token.Type == JTokenType.Array)
{
List<object> list = new List<object>();
foreach (JToken value in token)
{
list.Add(ToObject(value));
}
return list;
}
else if (token.Type == JTokenType.Date)
{
// Hacky hack back
// Can't figure out how to tell JSON.net not to deserialize datetimes
return ((JValue)token).ToObject<DateTime>().ToString("yyyy-MM-dd'T'HH:mm:ssZ");
}
else
{
return ((JValue)token).Value;
}
}