我知道有一些关于Newtonsoft的帖子,所以希望这不是一个重复......我正在尝试将Kazaa的API返回的JSON数据转换成某种形状的好对象
WebClient client = new WebClient();
Stream stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album");
StreamReader reader = new StreamReader(stream);
List<string> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(reader.Read().ToString());
foreach (string item in list)
{
Console.WriteLine(item);
}
//Console.WriteLine(reader.ReadLine());
stream.Close();
Run Code Online (Sandbox Code Playgroud)
那个JsonConvert系列只是我最近尝试过的一个......我不太了解它并且希望通过问你们来消除一些步法.我原本试图将它转换为字典或其他东西......实际上,我只需要在那里获取一些值,因此根据文档来判断,也许Newtonsoft的LINQ to JSON可能是更好的选择?思考/链接?
以下是JSON返回数据的示例:
{
"page": 1,
"total_pages": 8,
"total_entries": 74,
"q": "muse",
"albums": [
{
"name": "Muse",
"permalink": "Muse",
"cover_image_url": "http://image.kazaa.com/images/69/01672812 1569/Yaron_Herman_Trio/Muse/Yaron_Herman_Trio-Muse_1.jpg",
"id": 93098,
"artist_name": "Yaron Herman Trio"
},
{
"name": "Muse",
"permalink": "Muse",
"cover_image_url": "htt p://image.kazaa.com/images/54/888880301154/Candy_Lo/Muse/Candy_Lo-Muse_1.jpg",
"i d": 102702,
"artist_name": "\u76e7\u5de7\u97f3"
},
{
"name": "Absolution",
"permalink": " Absolution",
"cover_image_url": …Run Code Online (Sandbox Code Playgroud) VS2010:在我新创建的项目中,任何时候我尝试添加对我的任何其他项目的引用,或者在这种情况下,MySql.Data ...我收到一条错误,上面写着"不兼容的参考" - "为了添加你应该首先将项目的目标更改为兼容的框架"
我的项目的目标设置为.NET 4,无论我试图添加的引用是否设置为.NET 4我仍然得到错误.有人有什么建议吗?谢谢
我需要按发布日期对MediaItem对象的List <>进行排序...发布日期不是项目的属性.因此,我的初衷是暂时处理发布日期属性,加载,排序和丢弃属性.有人在我的工作中建议我使用Tuple并使用LINQ进行排序...我在我的片段测试中得到了这个,填写了List <> ...但是我不知道如何使用该日期属性进行排序LINQ.我会一直看着我,但如果有人得到任何帮助我会很感激.谢谢.
List<Tuple<MediaItem, DateTime>> list = new List<Tuple<MediaItem, DateTime>>();
for (int i = 0; i <= 10; i++)
{
DateTime date = new DateTime(2011, i, 1);
MediaItem item = new MediaItem();
list.Add(new Tuple<MediaItem, DateTime>(item, date));
}
Run Code Online (Sandbox Code Playgroud) 我想要的app.config是这样的:
<configSections>
<sectionGroup name="QA_Environment">
<section name="databases" type="System.Configuration.NameValueSectionHandler"/>
<section name="storageSystems" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
<sectionGroup name="Production_Environment">
<section name="databases" type="System.Configuration.NameValueSectionHandler"/>
<section name="storageSystems" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
Run Code Online (Sandbox Code Playgroud)
...然后我就得到了正确的组和部分.但是我会对任何有效或更好的建议感到满意.我现在已经降低了我的愿望:
<configSections>
<sectionGroup name="QA_Environment">
<section name="appSettings" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
<sectionGroup name="Production_Environment">
<section name="appSettings" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
Run Code Online (Sandbox Code Playgroud)
我想这很好......我想知道的主要问题是,如果我可以将这些部分中的一个替换为根级别的appSettings ...而不必迭代它们并以编程方式添加或创建配置并保存它.我只希望用户能够选择一个环境,select事件将改变appSettings ...
我面临的一个限制是我引用的数据层需要保持原样....所以我基本上需要让我的app.config可以像目前这些其他项目一样访问......那就是ConfigurationManager.AppSettings [afdasdf]
如果需要澄清,请告诉我...谢谢
c# configurationmanager app-config appsettings custom-sections
我有类似下面的代码...有人在这里提到WebClient,Stream和StreamReader对象都可以从使用块中受益.两个简单的问题:
1:这个小片段看起来如何使用块?我做自己的研究没有问题,所以资源链接很好但是看到一个例子会更快更容易,我会从中理解它.
2:我想养成良好的编码标准的习惯,如果我对使用积木更好的原因有所了解会有所帮助...是否只是让你不必担心关闭或在那里更多原因?谢谢!
WebClient client = new WebClient();
Stream stream = client.OpenRead(originGetterURL);
StreamReader reader = new StreamReader(stream);
JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(reader.ReadLine());
string encryptionKey = (string)jObject["key"];
string originURL = (string)jObject["origin_url"];
stream.Close()
reader.Close()
Run Code Online (Sandbox Code Playgroud) 有更干净,更聪明的方法吗?
我正在使用数据库来获取数据以填充对象并将数据库字符串值转换回其枚举(我们可以假设数据库中的所有值都是匹配枚举中的值)
有问题的行是下面的行设置EventLog.ActionType ...我开始质疑我的方法的原因是因为在等号之后,VS2010一直试图通过放置这个来覆盖我正在键入的内容:"= EventActionType("
using (..<snip>..)
{
while (reader.Read())
{
// <snip>
eventLog.ActionType = (EventActionType)Enum.Parse(typeof(EventActionType), reader[3].ToString());
...etc...
Run Code Online (Sandbox Code Playgroud) 我有一个包含一大堆值的枚举(这里只显示了三个):
public enum LookupType
{
Alignment,
Language,
ReEmbedBehavior
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个基于名为LookupType的varchar字段获取数据的方法...我想要的是将此方法的调用者限制为仅限于数据库中的查找类型...所以在我的WHERE子句的末尾,我想要将枚举名称作为字符串,而不是它的整数值.
然后,调用者将执行类似GetLookupsByLookupType(LookupType.Language)的操作,我的方法将调用为"where lookuptype ='Language'"
public List<Lookup> GetLookupsByLookupType(UnicornMedia.Core.DomainModel.Enumerations.LookupType lookupType)
{
var lookups = new List<Lookup>();
string SQL = String.Format(@"Select id, name, value, lookuptype
from lookups
where lookuptype = '{0}'", lookupType.ToString());
...<snip>...
}
Run Code Online (Sandbox Code Playgroud)
这可能是一些简单的事情,但我似乎不时碰到这个,而不是弄清楚,我最终只是使用一个字典...无论如何,它就是,谢谢
我以为我读到某个地方,订购你的使用陈述并摆脱未使用的陈述有一些性能上的好处......但我似乎无法找到任何证据或资源来支持这个......这有什么道理吗?
也许有人能指出我朝着一个决定性的资源来学习如何使用C#在Windows Server 2008的计算机上远程更改计算机名
我已经看了很多网站寻求帮助,现在我的任务的第二天并没有真正的任何接近(除了决定WMI几乎是我唯一的选择)完全超出我的正常技能组所以我猜几乎任何信息都是很好,但尤其是与远程更改计算机名称有关的任何事情.(这会在我从图像远程旋转虚拟现象后发生......是的,我意识到需要重新启动)
谢谢
在 *ngFor 循环中,我想要一个 HTML 元素随机显示自己...50/50 的机会。
这是我认为可行的方法:
<span *ngIf="Math.random() < 0.5">test</span>
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
BookingPageComponent.html:139 ERROR TypeError: Cannot read property 'random' of undefined
Run Code Online (Sandbox Code Playgroud)
我做错了什么,应该如何正确完成?
谢谢!
c# ×8
enums ×2
linq ×2
using ×2
.net ×1
angular ×1
app-config ×1
appsettings ×1
json ×1
json.net ×1
namespaces ×1
performance ×1
reference ×1
stream ×1
streamreader ×1
tuples ×1
wmi ×1