【发布时间】:2016-01-30 13:31:04
【问题描述】:
我有以下非常复杂的 JSON 字符串。我只需要从每个节点中选择几个项目,例如列表、成本和不可用。但我不知道如何获取我想要的每个元素。我正在使用JSON.NET.
Json 内容:
{
"parts": [
{
"1_0": {
"added2cartStatus": 0,
"unavailable": true,
"originalQty": 0,
"buyQty": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
},
"nd": [
{
"100": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star PalmSpring",
"deliveryDelay": "",
"available": 0
}
},
{
"101": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Indio",
"deliveryDelay": "",
"available": 0
}
},
{
"102": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Metro SB",
"deliveryDelay": "",
"available": 0
}
},
{
"103": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Banning",
"deliveryDelay": "",
"available": 0
}
},
{
"108": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Yucaipa",
"deliveryDelay": "",
"available": 0
}
},
{
"109": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Redlands",
"deliveryDelay": "",
"available": 0
}
},
{
"111": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Riverside",
"deliveryDelay": "",
"available": 0
}
},
{
"112": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Blomington",
"deliveryDelay": "",
"available": 0
}
},
{
"113": {
"price": {
"list": "$80.58",
"cost": "$52.65"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Chino",
"deliveryDelay": "",
"available": 0
}
}
],
"perCarQty": 0,
"uofm": {
"100": "EA",
"101": "EA",
"102": "EA",
"103": "EA",
"108": "EA",
"109": "EA",
"111": "EA",
"112": "EA",
"113": "EA"
},
"sortRequired": false,
"minQty": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
},
"costToggleState": 0,
"updatePartStatus": false,
"buyInc": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
}
}
},
{
"2_0": {
"added2cartStatus": 0,
"unavailable": false,
"originalQty": 0,
"buyQty": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
},
"nd": [
{
"100": {
"selected": true,
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star PalmSpring",
"deliveryDelay": "",
"available": 1
}
},
{
"101": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Indio",
"deliveryDelay": "",
"available": 0
}
},
{
"102": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Metro SB",
"deliveryDelay": "",
"available": 2
}
},
{
"103": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Banning",
"deliveryDelay": "",
"available": 0
}
},
{
"108": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Yucaipa",
"deliveryDelay": "",
"available": 0
}
},
{
"109": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Redlands",
"deliveryDelay": "",
"available": 0
}
},
{
"111": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Riverside",
"deliveryDelay": "",
"available": 0
}
},
{
"112": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Blomington",
"deliveryDelay": "",
"available": 0
}
},
{
"113": {
"price": {
"list": "$20.22",
"cost": "$9.23"
},
"pseudo": false,
"sellDirect": false,
"called": "Star Chino",
"deliveryDelay": "",
"available": 0
}
}
],
"perCarQty": 0,
"uofm": {
"100": "EA",
"101": "EA",
"102": "EA",
"103": "EA",
"108": "EA",
"109": "EA",
"111": "EA",
"112": "EA",
"113": "EA"
},
"sortRequired": true,
"minQty": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
},
"costToggleState": 0,
"updatePartStatus": false,
"buyInc": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
}
}
},
{
"3_0": {
"added2cartStatus": 0,
"unavailable": true,
"originalQty": 0,
"buyQty": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
},
"nd": [
{
"100": {
"pseudo": false,
"sellDirect": false,
"called": "Star PalmSpring",
"deliveryDelay": "",
"available": 0
}
},
{
"101": {
"pseudo": false,
"sellDirect": false,
"called": "Star Indio",
"deliveryDelay": "",
"available": 0
}
},
{
"102": {
"pseudo": false,
"sellDirect": false,
"called": "Metro SB",
"deliveryDelay": "",
"available": 0
}
},
{
"103": {
"pseudo": false,
"sellDirect": false,
"called": "Star Banning",
"deliveryDelay": "",
"available": 0
}
},
{
"108": {
"pseudo": false,
"sellDirect": false,
"called": "Star Yucaipa",
"deliveryDelay": "",
"available": 0
}
},
{
"109": {
"pseudo": false,
"sellDirect": false,
"called": "Star Redlands",
"deliveryDelay": "",
"available": 0
}
},
{
"111": {
"pseudo": false,
"sellDirect": false,
"called": "Star Riverside",
"deliveryDelay": "",
"available": 0
}
},
{
"112": {
"pseudo": false,
"sellDirect": false,
"called": "Star Blomington",
"deliveryDelay": "",
"available": 0
}
},
{
"113": {
"pseudo": false,
"sellDirect": false,
"called": "Star Chino",
"deliveryDelay": "",
"available": 0
}
}
],
"perCarQty": 0,
"uofm": {
"100": "",
"101": "",
"102": "",
"103": "",
"108": "",
"109": "",
"111": "",
"112": "",
"113": ""
},
"sortRequired": false,
"minQty": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
},
"costToggleState": 0,
"updatePartStatus": false,
"buyInc": {
"100": 1,
"101": 1,
"102": 1,
"103": 1,
"108": 1,
"109": 1,
"111": 1,
"112": 1,
"113": 1
}
}
}
],
"running": false
}
【问题讨论】:
-
请发布您的代码并解释您遇到的确切问题,以便我们以此为基础。如果您不知道,我建议您先从简单的示例开始,然后再深入研究复杂的结构。我敢肯定在 SO 中一定有很多类似的问题。
-
看看 JsonPath。 goessner.net/articles/JsonPath
-
我一直在寻找简单的代码来实现这一点。我已经尝试了一些解决方案,但没有奏效。我是新手...
-
租个编码器,他们帮你搞定了:)
标签: c# json json.net json-deserialization