public IActionResult JsonPack <T>(JsonBase <T> json, bool CamelCase = false) { var str = json.ModelToJson(CamelCase); var result = new ContentResult() { Content = str, ContentType = "application/json" }; //return Json(json); return(result); }
public override bool DecodeAll(ref JsonBase thisJson) { bool changes = false; for (int i = 0; i < properties.Count; i++) { var val = properties[i] as JsonBase; changes |= val.DecodeAll(ref val); } return(changes); }
public static IResult <object> GetMember(Type type, JsonBase jsonObject) { object result; switch (jsonObject) { case JsonString js: result = GetFromString(type, js.ToString()); break; case JsonBoolean jb: result = jb.ToBoolean(); break; case JsonInteger ji: result = ji.ToInteger(); break; case JsonDouble jd: result = jd.ToDouble(); break; case JsonArray ja: if (GetArray(type, ja).If(out var array, out var exception)) { result = array; } else { return(failure <object>(exception)); } break; case JsonObject jo: if (DeserializeObject(type, jo).If(out var obj, out exception)) { result = obj; } else { return(failure <object>(exception)); } break; default: return($"Didn't understand {jsonObject}".Failure <object>()); } return(result.Success()); }
public void ForceGetArrayPropertyTest() { var jsonBase = new JsonBase { JsonObject = JObject.Parse("{}") }; var result = jsonBase.ForceGetArrayPropertyToken("myArray"); Assert.IsTrue(result.Type == JTokenType.Array); result.Add(JToken.FromObject("Hi There")); Debug.WriteLine(result.ToString()); }
/// <summary> /// 获取已开放县城的信息 /// </summary> /// <param name="json"></param> public void GetCountyMessage(string json, int status) { anhui.MahjongCommonMethod mcm = anhui.MahjongCommonMethod.Instance; SelectAreaPanelData.CountyMessageData data = new SelectAreaPanelData.CountyMessageData(); data = JsonBase.DeserializeFromJson <SelectAreaPanelData.CountyMessageData>(json.ToString()); if (data.CountyData[0].status != 1) { Debug.LogError("获取已开放县城的信息错误,status:" + data.CountyData[0].status); return; } //保存获取的城市信息 for (int i = 0; i < data.CountyData.Count; i++) { for (int j = 0; j < data.CountyData[i].data.Count; j++) { int countyId = System.Convert.ToInt32(data.CountyData[i].data[j].countyId); if (mcm._dicDisConfig.ContainsKey(countyId)) { mcm._dicDisConfig[countyId].VALID = System.Convert.ToInt32(data.CountyData[i].data[j].flag); } } } //为方法id赋值 for (int i = 0; i < mcm._districtConfig.Count; i++) { if (mcm._districtConfig[i].COUNTY_ID == GameData.Instance.SelectAreaPanelData.iCountyId && mcm._districtConfig[i].VALID == 2) { string[] id = mcm._districtConfig[i].METHOD.Split('_'); for (int k = 0; k < id.Length; k++) { int ID = System.Convert.ToInt16(id[k]); if (ID != 0) { Debug.LogWarning("获取已开放县城的信息"); mcm.lsMethodId.Add(ID); } } } } GameData gd = GameData.Instance; GamePlayingMethodPanelData gpmpd = gd.GamePlayingMethodPanelData; gpmpd.PanelShow = true; //gpmpd.GameIndex = 1; //默认打开第一个 SystemMgr.Instance.GamePlayingMethodSystem.UpdateShow(); }
public override bool DecodeAll(ref JsonBase thisJson) { bool changes = false; for (int i = 0; i < values.Count; i++) { var val = values[i]; if (val.DecodeAll(ref val)) { values[i] = val; changes = true; } } return(changes); }
public void GetGrade_Round(string json, int status) { Grade_RoundData_.Clear(); Grade_RoundMessageData data = new Grade_RoundMessageData(); data = JsonBase.DeserializeFromJson <Grade_RoundMessageData>(json.ToString()); if (data.RoundMessageData[0].status != 1) { Debug.LogError("获取网页json数据状态错误,status:" + data.RoundMessageData[0].status); return; } //将数据保存到list中 for (int i = 0; i < data.RoundMessageData.Count; i++) { for (int j = 0; j < data.RoundMessageData[i].data.Count; j++) { if (Convert.ToInt32(GradeRoom.disType) != 5 && String.Equals(GradeRoom.disTime, data.RoundMessageData[i].data[j].endTim)) { continue; } Grade_RoundData grade = new Grade_RoundData(); grade.gameNum = data.RoundMessageData[i].data[j].gameNum; grade.playing_method = data.RoundMessageData[i].data[j].playing_method; grade.dealer = data.RoundMessageData[i].data[j].dealer; grade.point[0] = data.RoundMessageData[i].data[j].point1; grade.point[1] = data.RoundMessageData[i].data[j].point2; grade.point[2] = data.RoundMessageData[i].data[j].point3; grade.point[3] = data.RoundMessageData[i].data[j].point4; grade.nickName[0] = data.RoundMessageData[i].data[j].nick1; grade.nickName[1] = data.RoundMessageData[i].data[j].nick2; grade.nickName[2] = data.RoundMessageData[i].data[j].nick3; grade.nickName[3] = data.RoundMessageData[i].data[j].nick4; grade.headUrl[0] = data.RoundMessageData[i].data[j].head1; grade.headUrl[1] = data.RoundMessageData[i].data[j].head2; grade.headUrl[2] = data.RoundMessageData[i].data[j].head3; grade.headUrl[3] = data.RoundMessageData[i].data[j].head4; grade.selfDrawnSeat = data.RoundMessageData[i].data[j].selfDrawnSeat; grade.shootSeat = data.RoundMessageData[i].data[j].shootSeat; grade.endTime = MahjongCommonMethod.Instance.UnixTimeStampToDateTime(Convert.ToDouble(data.RoundMessageData[i].data[j].endTim), 0); grade.replayCode = String.Format("{0:0000000}", data.RoundMessageData[i].data[j].replayCode); Grade_RoundData_.Add(grade); } } // Debug.LogWarning ("开始产生对应的战绩预置体"); SpwanHistroyGrade_Round(); }
public bool Inspect() { if (icon.Delete.Click()) { triedToDecodeAll = false; json = new JsonString(); jsonDestination = ""; } if (!triedToDecodeAll && "Decode All".Click()) { var str = json.AsJsonString; if (str != null) { str.dataOnly = false; var sb = new StringBuilder(); int index = 0; while (index < str.data.Length && str.data[index] != '{') { sb.Append(str.data[index]); index++; } jsonDestination = sb.ToString(); str.data = str.data.Substring(index); } triedToDecodeAll = true; do { } while (json.DecodeAll(ref json)); } if (jsonDestination.Length > 5) { jsonDestination.write(); } return(DecodeOrInspectJson(ref json, true)); }
static void Main(string[] args) { JsonBase jsonBase = new JsonBase(); _agencia = jsonBase.BuscarDados(); if (_agencia == null) { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("BEM VINDO!"); Console.ForegroundColor = ConsoleColor.Gray; Console.Write("POR FAVOR DIGITE O NOME DA SUA AGÊNCIA DE TRANSPORTES: "); _agencia = new Agencia(ValidarLetrasComEspaco(Console.ReadLine())); } MenuInicial(_agencia, jsonBase); }
public async Task <Profile> GetInternal(string pat) { using (var vsspsHttpClient = new HttpClient()) { var authByteArray = Encoding.ASCII.GetBytes($"username:{pat}"); vsspsHttpClient.BaseAddress = new Uri("https://app.vssps.visualstudio.com/"); vsspsHttpClient.DefaultRequestHeaders.Clear(); vsspsHttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(authByteArray)); var profileContent = await JsonBase.Get(vsspsHttpClient, "_apis/profile/profiles/me?api-version=5.1"); var profile = JsonBase.FromJson <Profile>(profileContent); return(profile); } }
/// <summary> /// 获取大厅登录公告内容 /// </summary> /// <param name="json"></param> public void GetBulletinData(string json, int status) { //Debug.LogError("登录公告信息内容:" + json); BulletinContentData.Clear(); lsBulletinContent data = new lsBulletinContent(); data = JsonBase.DeserializeFromJson <lsBulletinContent>(json.ToString()); if (data.LoginBulletinData[0].status != 1) { Debug.LogError("获取网页json数据状态错误,status:" + data.LoginBulletinData[0].status); return; } //表示没有公告,直接显示登陆界面 if (data.LoginBulletinData[0].data.Count == 0 || SDKManager.Instance.IOSCheckStaus == 1) { bg.SetActive(false); GameData gd = GameData.Instance; gd.WXLoginPanelData.isPanelShow = true; SystemMgr.Instance.WXLoginSystem.UpdateShow(); // SDKManager.Instance.iUserId_iAuthType_ServerType = MahjongCommonMethod .Instance .iUserid + LobbyContants.SeverType;//赋值 if (PlayerPrefs.HasKey(SDKManager.Instance.iUserId_iAuthType_ServerType) && Network.NetworkMgr.Instance.LobbyServer.Connected) { SDKManager.Instance.gameObject.GetComponent <CameControler>().PostMsg("loading");//加载loading画面---认证回应 GameData.Instance.PlayerNodeDef.isSencondTime = 2; //判断是否过期 Debug.LogError("玩家认证类型:===================1"); SDKManager.Instance.GetRefreshToken(PlayerPrefs.GetString(SDKManager.Instance.szrefresh_token)); } return; } for (int i = 0; i < data.LoginBulletinData.Count; i++) { for (int j = 0; j < data.LoginBulletinData[i].data.Count; j++) { BulletinContent content = new BulletinContent(); content.title = data.LoginBulletinData[i].data[j].title; content.content = "\t" + data.LoginBulletinData[i].data[j].content; BulletinContentData.Add(content); } } ShowBulletin(); }
// jsonファイルの選択 public void ChangeJsonDropdown(int index) { string path = JsonDropDown.captionText.text; if (path == "NONE") { return; } FileStream fileStream = new FileStream(JsonFileDirectoryPath + System.IO.Path.DirectorySeparatorChar + path, FileMode.Open, FileAccess.Read); BinaryReader bin = new BinaryReader(fileStream); byte[] readBinary = bin.ReadBytes((int)bin.BaseStream.Length); bin.Close(); fileStream.Dispose(); fileStream = null; string text = System.Text.Encoding.UTF8.GetString(readBinary); readBinary = null; // AyatakaのJsonファイルフォーマットは、そのままJsonUtilityで読めるフォーマットにはなっていない(はず)なので、 // データ名タグを追加 text = "{\"jsonData\": " + text + "}"; JsonBaseData = JsonUtility.FromJson <JsonBase>(text); List <string> atlasList = new List <string>(); for (int i = 0; i < JsonBaseData.jsonData.Length; i++) { if (string.IsNullOrEmpty(JsonBaseData.jsonData[i].atlas) == false) { // imagesとbgは、それその物を参照する物ではないらしいので、弾く if (JsonBaseData.jsonData[i].atlas.IndexOf("ui-atlas" + "/" + "images") == -1) { if (JsonBaseData.jsonData[i].atlas.IndexOf("ui-atlas" + "/" + "bg") == -1) { atlasList.Add(JsonBaseData.jsonData[i].nameKey); } } } } ImageTagDropDown.ClearOptions(); atlasList.Insert(0, "NONE"); ImageTagDropDown.AddOptions(atlasList); }
internal static void MenuViajar(Agencia agencia, JsonBase jsonBase) { while (true) { Console.Clear(); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine($"AGÊNCIA: {agencia.NomeAgencia.ToUpper()}"); Console.ForegroundColor = ConsoleColor.DarkYellow; Console.WriteLine("SELECIONE UMA OPÇÃO DE [1] A [2]\n"); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("[1] - PROGRAMAR VIAGEM"); Console.WriteLine("[2] - EXECUTAR VIAGEM"); Console.WriteLine("[ESC] - VOLTAR AO MENU INICIAL"); ConsoleKeyInfo tecla = Console.ReadKey(); switch (tecla.Key) { case ConsoleKey.Escape: MenuInicial(agencia, jsonBase); break; case ConsoleKey.NumPad1: agencia.ProgramarViagem(); jsonBase.Salvar(agencia); Console.Write("\nPRESSIONE QUALQUER TECLA PARA VOLTAR.."); Console.ReadKey(); break; case ConsoleKey.NumPad2: agencia.ExecutarViagem(); jsonBase.Salvar(agencia); Console.Write("\nPRESSIONE QUALQUER TECLA PARA VOLTAR.."); Console.ReadKey(); break; default: Console.Write("\nPRESSIONE QUALQUER TECLA PARA VOLTAR.."); Console.ReadKey(); MenuViajar(agencia, jsonBase); break; } } ; }
protected static void TryDecode(ref JsonBase j) { if (!(j is JsonString str)) { return; } var tmp = str.TryDecodeString(); if (tmp != null) { j = tmp; } else { str.dataOnly = true; } }
public override bool DecodeAll(ref JsonBase thisJson) { if (!dataOnly) { var tmp = TryDecodeString(); if (tmp != null) { thisJson = tmp as JsonBase; return(true); } else { dataOnly = true; } } return(false); }
/// <summary> /// 获取玩家的下级推广员的数量 /// </summary> /// <param name="json"></param> /// <returns></returns> public void GetProductCount(string json, int status) { int count = 0; ProductData_ data = new ProductData_(); data = JsonBase.DeserializeFromJson <ProductData_>(json.ToString()); if (data.Product[0].status == 1) { count = data.Product[0].sp_num; //Debug.LogError("count:" + data.Product[0].sp_num); } if (count > 0 && PlayerPrefs.GetFloat(Guide.Promote.ToString()) == 0) { OpenIndexGuide(Guide.Promote); } }
public void JsonBaseSeriailize_TEST() { var jbase = new JsonBase <TestEnum> { Status = TestEnum.A, Message = "aaa", Content = "bbb" }; var json = JsonConvert.SerializeObject(jbase); Assert.Equal("{\"status\":0,\"msg\":\"aaa\",\"content\":\"bbb\"}", json); var jbase2 = new JsonBase <TestEnum> { Status = TestEnum.A, Message = "aaa" }; var json2 = JsonConvert.SerializeObject(jbase2); Assert.Equal("{\"status\":0,\"msg\":\"aaa\"}", json2); }
async Task LoadDataAsync(string uri) { string responseJsonString = null; using (var httpClient = new WebClient()) { try { //Task<HttpResponseMessage> getResponse = httpClient.GetAsync(uri); // HttpResponseMessage response = await getResponse; responseJsonString = httpClient.DownloadString(uri); //responseJsonString = await response.Content.ReadAsStringAsync(); Response = JsonBase <SomeObjectTHatUwant> .ReturnResultsList(responseJsonString); } catch (Exception) { throw; } } }
protected static bool TryDecode(ref JsonBase j) { var str = j as JsonString; if (str != null) { var tmp = str.TryDecodeString(); if (tmp != null) { j = tmp as JsonBase; return(true); } else { str.dataOnly = true; } } return(false); }
private JsonData JngsSgyParser(JsonData jsobj) { JsonData jret = null; JsonBase jbr = null; if (jsobj != null) { #region 统一代码 try { if (jsobj != null) { string optaction = "mobile_BLL.Interface." + jsobj["optstring"].ToString() + ",mobile_BLL"; Type type = Type.GetType(optaction); jbr = (JsonBase)Activator.CreateInstance(type, jsobj["optdata"]); } if (jbr != null) { jbr.strBaseUrl = HttpContext.Current.Request.Url.AbsoluteUri; jbr.strBaseUrl = jbr.strBaseUrl.Replace(HttpContext.Current.Request.Url.AbsolutePath, ""); jbr.strBaseUrl += HttpContext.Current.Request.ApplicationPath; StringBuilder sb = new StringBuilder(); LitJson.JsonWriter jw = new LitJson.JsonWriter(sb); jw.WriteObjectStart(); jw.WritePropertyName("result"); jw.Write(""); jw.WriteObjectEnd(); jret = JsonMapper.ToObject(sb.ToString()); jret["result"] = (JsonData)jbr.GetData(); } } catch (Exception ex) { BaseDal.RecordError("json数据返回出错_get_data.ashx", ex.ToString()); } #endregion } return(jret); }
private void Add(HttpMessage http, object data, Suffix suffix = Suffix.None) { if (http == null) { return; } StringBuilder sb = new StringBuilder(); if (JsonBase.IsJson(http.Data)) { data = JsonPacket.Parse(http.Data); } else if (IsHandshake(http.Data)) { data = http.Data; } sb.Append(http.Message.Substring(0, http.Message.Length - HttpMessage.EndOfMessage.Length)); if (data != null) { sb.Append(HttpMessage.EndOfMessage); sb.Append(data); } switch (suffix) { case Suffix.EOL: { sb.Append(Constant.Newline); sb.Append("________________________________________________________________________________________________________________________________________________________________________________________________"); break; } } sb.Append(Constant.Newline); Add(sb); }
/// <summary> /// 获取已开放城市的信息 /// </summary> /// <param name="json"></param> public void GetCityMessage(string json, int status) { listCityMessage.Clear(); CityMessageData data = new CityMessageData(); data = JsonBase.DeserializeFromJson <CityMessageData>(json.ToString()); if (data.CityData[0].status != 1) { Debug.LogError("获取网页json数据状态错误,status:" + data.CityData[0].status); return; } ParlorShowPanelData pspd = GameData.Instance.ParlorShowPanelData; //保存获取的城市信息 for (int i = 0; i < data.CityData.Count; i++) { for (int j = 0; j < data.CityData[i].data.Count; j++) { CityMessage message = new CityMessage(); message.cityId = data.CityData[i].data[j].cityId; message.cityName = data.CityData[i].data[j].cityName; message.flag = data.CityData[i].data[j].flag; listCityMessage.Add(message); if (System.Convert.ToInt16(message.flag) == 2) { pspd.listCityMessage.Add(message); } } } //获取城市信息成功 isGetCitySuccess = true; if (isGetCountySuccess) { //改变地图大小 UIMainView.Instance.SelectAreaPanel.ChangeScale(); } }
protected static bool DecodeOrInspectJson(ref JsonBase j, bool foldedOut, string name = "") { var str = j.AsJsonString; if (str != null) { if (str.dataOnly) { if (!foldedOut) { name.edit(ref str.data); if (name.Length > 7 && icon.Copy.Click("Copy name to clipboard", 15)) { GUIUtility.systemCopyBuffer = name; } } } else if (foldedOut && "Decode 1 layer".Click()) { TryDecode(ref j); } pegi.nl(); } if (!foldedOut) { return(false); } var changed = j.Inspect().nl(); return(changed); }
public async Task <OrganizationList> ReadOrganizations(string PAT) { Console.WriteLine("Reading Organizations"); var organizationList = new OrganizationList(); var authByteArray = Encoding.ASCII.GetBytes($"username:{PAT}"); using (HttpClient vsspsHttpClient = new HttpClient()) { vsspsHttpClient.BaseAddress = new Uri("https://vssps.dev.azure.com"); vsspsHttpClient.DefaultRequestHeaders.Clear(); vsspsHttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(authByteArray)); var profile = await GetInternal(PAT); var organizationListContent = await JsonBase.Get(vsspsHttpClient, $"_apis/accounts?memberId={profile.Id}&api-version=5.1"); organizationList = JsonBase.FromJson <OrganizationList>(organizationListContent); } return(organizationList); }
/// <summary> /// 获取已开放城市的信息 /// </summary> /// <param name="json"></param> public void GetCityMessage(string json, int status) { anhui.MahjongCommonMethod mcm = anhui.MahjongCommonMethod.Instance; SelectAreaPanelData.CityMessageData data = new SelectAreaPanelData.CityMessageData(); data = JsonBase.DeserializeFromJson <SelectAreaPanelData.CityMessageData>(json.ToString()); if (data.CityData[0].status != 1) { Debug.LogError("获取网页json数据状态错误,status:" + data.CityData[0].status); return; } //保存获取的城市信息 for (int i = 0; i < data.CityData.Count; i++) { for (int j = 0; j < data.CityData[i].data.Count; j++) { int cityId = System.Convert.ToInt32(data.CityData[i].data[j].cityId); if (mcm._dicCityConfig.ContainsKey(cityId)) { mcm._dicCityConfig[cityId].VALID = System.Convert.ToInt32(data.CityData[i].data[j].flag); } } } }
public JToken ToToken(T value, JsonBase jsonBase) => value?.JsonObject ?? new JObject();
public T GetPropertyValue(JsonBase jsonBase, string propertyName) => FromToken(jsonBase.ForceGetObjectPropertyToken(propertyName), jsonBase);
public T FromToken(JToken token, JsonBase jsonBase) => jsonBase.Factory.Create <T>(token.ToTokenTypeOrEmptyObject <JObject>());
public JToken ToToken(T value, JsonBase jsonBase) => (value as IJsonList)?.JsonArray ?? new JArray();
public T FromToken(JToken token, JsonBase jsonBase) => new JsonArrayListWrapper <V>(token.ToTokenTypeOrEmptyObject <JArray>(), jsonBase) as T;