{"type" : "Something",
"values" : [
{ "type": "Something else",
"Categories": {
"values": [ "Grocery" ]},
"Origin": {
"values": [
{
"Name": "Chicken",
"State": "Texas",
"Quantity": "200",
"Year" : "2017" }],
"Primaryprovider": "Farmer",
"Name": "EggsGrocery"
},
{
"type": "Something else",
"categories": {
"values": [ "Utensil" ]},
"Origin": {
"values": [
{
"Name": "Cutlery",
"State": "Alaska",
"Quantity": "109",
"Year" : "2015" }],
"Primaryprovider": "Welder",
"Name": "UtensilSpoon"
}]}
我有一个与名称相匹配的字典。所以我尝试获得Primaryproviders,我得到了这个;
System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Linq.JToken]
请帮我指出我做错了什么。如果状态是具有LINQ表达式的Texas,我如何获得Name,State和Year的Origin值?我对LINQ不太熟练,所以我真的很感激那里的简短解释。我开始使用JToken,我看到这是一个坏主意。 请帮忙。非常感谢!
foreach (var kvp in catDict)
{
string cat = kvp.Key;
List<string> Names = new List<string>();
Names.AddRange(kvp.Value);
for (int i = 0; i < Names.Count; i++)
{
//if the name contains the name of the category
if (Names[i].Contains(cat))
{
//get primaryprovider
string primaryprover = json["values"].Select(pk => pk.SelectToken("Primaryprovider")).ToString();
// get the Origin Name, State & year if the state is Texas
// foreach (var jent in json["values"])
//{
//if (jentity["Origin"]["State"] == "Texas")
//}
Console.WriteLine(primaryprovider);
}
答案 0 :(得分:1)
免责声明:由于并未提供所有代码,因此我必须对对象做出一些假设。例如,catDict的通用参数是什么?
突出的一点是import org.apache.spark.ml.PipelineModel
val model = PipelineModel.load("/analytics_shared/qoe/km_model")
不使用任何循环变量,这意味着它总是会返回相同的值。
但我的建议是支持并采取不同的方法。 Deserialize your json into a list of objects(您需要先创建数据合同)。完成后,您所讨论的操作方法非常简单。以下是一些例子。
string primaryProvider