मेरे पास यह JSON प्रतिक्रिया है:

{
    "post_parameters_error_flag": false,
    "data_error_flag": false,
    "row_count": 7,
    "message": "Operazione completata.",
    "title": [
        "title0",
        "title1",
        "title2",
        "title3",
        "title4",
        "title5",
        "title6"
    ],
    "data": [
        "value0",
        "value1",
        "value2",
        "value3",
        "value4",
        "value5",
        "value6",
        "value7"
    ]
}

मुझे एक सूची में लिखना है (उदाहरण के लिए) 'डेटा' सरणी से प्राप्त सभी मान लेकिन मुझे नहीं पता कि प्रतिक्रिया से डेटा कैसे प्राप्त करें:

string URL = "myurl";
string Params = string.Format("hwid={0}&building={1}", Utils.UUID(), "test");

Request HTTPRequest = new Request();

JObject JSONObject = JObject.Parse(await HTTPRequest.PostAsyncResponse(URL, Params));

//now? what can i do

हल करने का कोई विचार?

-1
TheRed27 17 सितंबर 2019, 14:06
चूंकि एक पूरी तरह से वैध उत्तर रहा है, मैं आपको बताना चाहता हूं कि JSON के लिए एक NuGet पैकेज है जिसे Newtonsoft कहा जाता है जो JSON को क्रमबद्ध और deserializing अपेक्षाकृत आसान बनाता है। यह देखने लायक हो सकता है।
 – 
Freek W.
17 सितंबर 2019, 14:38

2 जवाब

सबसे बढ़िया उत्तर

आप या तो इस तरह उपयोग कर सकते हैं:

var result = await HTTPRequest.PostAsyncResponse(URL, Params)
var token = JToken.Parse(result);
var data= token.Value<JArray>("data");

या आप जेसनपाथ का भी उपयोग कर सकते हैं:

var result = await HTTPRequest.PostAsyncResponse(URL, Params)
var token = JToken.Parse(result);
var data = token.SelectTokens("$.data[*]");

लेकिन वास्तव में, आपको किसी ऑब्जेक्ट में सीरियलाइज़ करना चाहिए और फिर डेटा (या अन्य गुण) प्राप्त करने के लिए गुणों का उपयोग करना चाहिए:

public class RootObject
{
    public bool post_parameters_error_flag { get; set; }
    public bool data_error_flag { get; set; }
    public int row_count { get; set; }
    public string message { get; set; }
    public List<string> title { get; set; }
    public List<string> data { get; set; }
}

var result = await HTTPRequest.PostAsyncResponse(URL, Params)
var item = JsonConvert.DeserializeObject<RootObject>(result);
var data = item.data;
2
andyb952 17 सितंबर 2019, 14:10
1
धन्यवाद, मैंने डेटा को किसी ऑब्जेक्ट में क्रमबद्ध करके और गुणों से एक्सेस करके हल किया है
 – 
xXConcasXx
17 सितंबर 2019, 16:16

ये कोशिश करें,

var data = JObject.Parse(await HTTPRequest.PostAsyncResponse(URL, Params))["data"]

या

var jsonObject = (JObject)JsonConvert.DeserializeObject(await HTTPRequest.PostAsyncResponse(URL, Params));
var data = (JObject)(jsonObject.Property("data").Value);
0
Workaholic 17 सितंबर 2019, 14:16
धन्यवाद, मैंने @andyb952 . के समाधान का पालन करके पहले ही हल कर लिया है
 – 
xXConcasXx
17 सितंबर 2019, 16:18