我有一个属性类型为 的 DTO 类JObject。此 DTO 类在多个服务之间通过 HTTP 发送/接收。使用 JObject 是因为ExtractedData它没有预定义的属性
public class MyDTO
{
public JObject ExtractedData {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我正在将此项目转换为 .NET 5。什么相当于 .NET 5 中的 JObject?我试图避免 JsonDocument 因为(来自文档):
JsonDocument 将数据的内存视图构建到池化缓冲区中。因此,与 Newtonsoft.Json 中的 JObject 或 JArray 不同,JsonDocument 类型实现 IDisposable 并且需要在 using 块中使用。
我打算使用JsonElement. 这是最合适的选择还是有任何其他类型可用于将 JSON 作为对象保存?
我的代码工作正常,但我似乎无法到达树的更深层部分.我试图拉经度和纬度.下面的代码将'status'拉为'OK'没问题(在响应的最后).'geometry' - >'location' - >'lat'和'lng'的语法是什么?
这是我的代码:
string RawAddress = "163 Leektown Road, New Gretna, NJ 08004";
string Address = RawAddress.Replace(" ", "+");
string AddressURL = "http://maps.google.com/maps/api/geocode/json?address=" + Address;
var result = new System.Net.WebClient().DownloadString(AddressURL);
dynamic data = JObject.Parse(result);
Lat.Text = data.status;
Run Code Online (Sandbox Code Playgroud)
这就是API生成的内容:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara County",
"short_name" : "Santa Clara County",
"types" : [ "administrative_area_level_2", …Run Code Online (Sandbox Code Playgroud) 我正在为winforms应用程序进行OAUTH2登录.
我必须使用一些凭据向我们发出请求,服务器将使用令牌和json格式进行响应.
解析令牌值的最佳方法是什么?
这是响应格式:
{
"access_token":"asdfasdfasdfafbasegfnadfgasdfasdfasdf",
"expires_in":3600,
"token_type":"Bearer"
}
Run Code Online (Sandbox Code Playgroud) 我想读取一个 JSON 文件并将其映射到类对象。我将如何在 C# 中做到这一点?
{
"companyName":"Test company",
"companyNumber":"1234",
"address":{
"buildingNumber":"33",
"street":"Caledon Road",
"county":"Barking and Dagenham",
"postalTown":"Essex",
"postcode":"E62HE"
}
}
Run Code Online (Sandbox Code Playgroud)
public class CompanyInfo
{
public string companyName{ get;set;}
public string companyNumber{ get;set;}
public string buildingNumber{ get;set;}
public string street{ get;set;}
public string county{ get;set;}
public string postalTown{ get;set;}
public string postCode{ get;set;}
}
Run Code Online (Sandbox Code Playgroud) 我有以下字符串:
{"key1":"value1","key2":"value2,some other part of value2"}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下长语法来分割它:
var s = someString.Split(new[] {"\",\""}, StringSplitOptions.RemoveEmptyEntries);
var firstEntryValue = s[0].Split(':')[1];
var secondEntryValue = s[1].Split(':')[1];
Run Code Online (Sandbox Code Playgroud)
由于这个字符串基本上是一个Dictionary<string,string>,我怎样才能将整个事物基本上拉成一行?
我见过这样的话:
var s = someString.Split(new[] {"\",\""}, StringSplitOptions.RemoveEmptyEntries)
.Select(p => p.Split(':'))
.ToDictionary(split => split[0], split => split[1]);
Run Code Online (Sandbox Code Playgroud)
但它抛出并索引越界错误.是否有一些类似的语法可行?
我尝试了无数种方法来解析我的JSON字符串(Steam公共数据),但似乎无济于事。我只希望能够从字符串中提取值。例如,获得的值personaname将返回SlothGod。我在项目中安装了JSON.NET。
这是我的JSON:
{
"response": {
"players": [
{
"steamid": "76561198301407459",
"communityvisibilitystate": 3,
"profilestate": 1,
"personaname": "SlothGod",
"lastlogoff": 1508389707,
"commentpermission": 1,
"profileurl": "http://steamcommunity.com/id/sleuthgud/",
"avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/09/09cea52b91136fb3306c57771a746db2823b91ba.jpg",
"avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/09/09cea52b91136fb3306c57771a746db2823b91ba_medium.jpg",
"avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/09/09cea52b91136fb3306c57771a746db2823b91ba_full.jpg",
"personastate": 0,
"realname": "Josh",
"primaryclanid": "103582791460168790",
"timecreated": 1462086929,
"personastateflags": 0,
"loccountrycode": "AU",
"locstatecode": "QLD"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
向我建议的主要方法:
public class Details
{
public string personaname { get; set; }
}
private void GetSteamDetails()
{
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Details>(SteamDetailsJson);
SteamName = data.personaname;
}
Run Code Online (Sandbox Code Playgroud)
它放在Page_Load()之前。然后我调用GetSteamDetails(); 当我想获取名称时。
我在c#中有一个字符串,如下所示:
{ name: "Phai d?u cu?c tình", mp3: "audio\\16\\Phai dau cuoc tinh.mp3"},{ name: "Caravan of life", mp3: "audio\\4\\Caravan of life.mp3"},{ name: "I'm Forbidden", mp3: "audio\\11\\I'm Forbidden.mp3"},{ name: "Cause i love you", mp3: "audio\\6\\Cause i love you.mp3"},{ name: "Ch? là gi?c m?", mp3: "audio\\8\\Chi la giac mo.mp3"},{ name: "L?t xác", mp3: "audio\\12\\Lot xac.mp3"}
我想将"\\"之间的数字换成新字符串.例如,结果将是:16; 4; 11; 6; 8; 12.任何帮助都会很棒.
我对 json 相当陌生,我正在尝试将一些 json 内容转换为 C# 类以存储它以供以后使用。我在尝试创建适合数据结构的类时遇到问题。json 内容的示例如下所示。
{
"FirstItem": {
"id": 1,
"type": "foo",
"colours": ["blue", "black", "green"],
"reviews": {
"positive": ["The best", "unbelievable", "Awesome"],
"negative": ["Sh*t", "Awful", "Dire", "Terrible", "Appalling"],
"neutral": ["OK", "Meh"]
}
},
"SecondItem": {
"id": 2,
"type": "bar",
"colours": ["red", "white", "yellow"],
"reviews": {
"positive": ["Great", "Amazing", "Fantastic", "Perfect", "Uplifting"],
"negative": ["Terrible", "Shocking", "abysmal"],
"neutral": ["OK", "Standard", "Vanilla"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
值得注意的是,这只是 json 数据的一个小样本,我希望使用更大的数据集,该数据集始终采用这种格式,但是 , FirstItem(SecondItem名称?) 总是会有所不同。我可能最终会得到一个MillionthItem.
我有字符串:["gm-63.pdf","GM413.pdf","mh524.pdf"]
如何用c#将上面的字符串转换为字符串数组?
我有一个字符串我想获得"id:"ie的索引以及双引号.
我应该如何在C#string.IndexOf函数中这样做?
我需要将此JSON字符串解析为我的"WeatherJson"类型的对象.但是我不知道如何解析字符串中的阵列,如"'天气’: [{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03d"}].实体类会是什么样子?
JSON字符串:
{
"coord": {"lon":79.85,"lat":6.93},
"sys": {
"type": 1,
"id": 7864,
"message": 0.0145,
"country": "LK",
"sunrise": 1435883361,
"sunset": 1435928421
},
"weather": [
{"id":802, "main":"Clouds", "description":"scattered clouds", "icon":"03d"}
],
"base": "stations",
"main": {
"temp": 302.15,
"pressure": 1013,
"humidity": 79,
"temp_min": 302.15,
"temp_max": 302.15
},
"visibility":10000,
"wind": { "speed": 4.1, "deg": 220 },
"clouds": { "all": 40 },
"dt": 1435893000,
"id":1248991,
"name":"Colombo",
"cod":200
}
Run Code Online (Sandbox Code Playgroud)
编辑
我需要从代码中检索以下值:
WeatherJson w = new WeatherJson();
Console.WriteLine(w.weather.description);
//that above line was retrieved and stored …Run Code Online (Sandbox Code Playgroud) 我想从字符串中获取单个数据,任何人都可以帮助我单独分割ID内容.我的代码存储结果值:
private void sendPostCompleted(object sender, UploadStringCompletedEventArgs e)
{
try
{
MessageBox.Show("Success..");
MessageBox.Show(e.Result);
string res=(string)e.Result;//here res contains my data..
//need to get ID value alone.
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)