Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取Json值时出现问题_C#_Json - Fatal编程技术网

C# 读取Json值时出现问题

C# 读取Json值时出现问题,c#,json,C#,Json,我有一个应用程序使用c sharp中的web api。我有下面的json,我需要解析 mobile_synch_tax_r 要测试某个条件的值。问题是,虽然此方法在使用windows服务时起作用,但在web api的控制器中不起作用 相关的json是: {"SYNC_DATA": { "mobile_synch_tax_r": [ { "idtax_registration":66, "gender": "", "title": "",

我有一个应用程序使用c sharp中的web api。我有下面的json,我需要解析

   mobile_synch_tax_r 
要测试某个条件的值。问题是,虽然此方法在使用windows服务时起作用,但在web api的控制器中不起作用

相关的json是:

{"SYNC_DATA": {
  "mobile_synch_tax_r": [
    {
      "idtax_registration":66,
      "gender": "",
      "title": "",
      "name": "AK",
      "home_address": "",
      "state_of_origin": "A",
      "home_town": "",
      "local_government": "",
      "occupation": "",
      "company_name": "",
      "office_address": "No",
      "ministry": "",
      "market": "",
      "park": "",
      "phone_number": "",
      "email_address": "",
      "photo_url": "",
      "tax_id": "285",
      "state": null,
      "registered_by": "imported",
      "biometric_status": 0,
      "registration_type": 2,
      "group_id": 100,
      "taxpayer_password": "*6BB",
      "tax_exempt": 0,
      "active": 1,
      "disability": "",
      "rf1": 1,
      "rf2": 1,
      "rf3": 1,
      "rf4": 1,
      "rf5": 1,
      "lf1": 1,
      "lf2": 1,
      "lf3": 1,
      "lf4": 1,
      "lf5": 1,
      "registered_on": "2015",
      "drivers_license_number": "",
      "national_number": "",
      "international_passport_number": "",
      "company_rcc": "",
      "workplace_category": "",
      "office_lg": "",
      "office_city": "n",
      "parent_id": "",
      "workplace_type": 0,
      "marital_status": "",
      "nationality": "u",
      "vend_pin": 0,
      "residential_address_status": "",
      "dob": null,
      "surname": "Ad",
      "first_name": "",
      "middle_name": "",
      "utin": "",
      "last_pw_reset_by": "",
      "temp_reg": 0,
      "company_size": "",
      "business_commencement_date": null,
      "proprietor_tax_id": "",
      "business_ownership_type": "",
      "has_subsidiary": false,
      "subsidiary": false,
      "subsidiary_of": "",
      "n": "",
      "locked": false,
      "author": "",
      "synch_status": false
    }]}}
这是控制器中的代码:

         // POST api/ak
    public HttpResponseMessage Post(HttpRequestMessage value)
    {
       var someText = value.Content.ReadAsStringAsync().Result;
        Library.WriteErrorLog("Data Received" + someText);

        var objects = JObject.Parse(someText);
        Library.WriteErrorLog("Objects are" + objects);
                            if (objects != null)
                            {
                                foreach (KeyValuePair<String, JToken> app in objects)
                                {
                                    var rootName = app.Key;
                                    if (rootName == "mobile_synch_tax_r")

           {"Have your way with me"}}

我怎么会错过它呢?

如果您只是在寻找
“mobile\u synch\u tax\r”
属性的值,您可以使用以下方法获取它:

var mobile_synch_tax_r = objects.SelectToken("..mobile_synch_tax_r");

是递归下降运算符,因此此查询在JSON对象层次结构中搜索名为
的第一个属性“mobile\u synch\u tax\r”
,并返回其值。

您是否调试了它,并查看了
对象的属性是什么?
?是的,我搜索了…完全相同的代码在windows服务应用程序中工作。它只是在web api上运行,您是否正在解析您提供的exat JSON?如果是这样,您的
objects
properties集合只有一个属性:“SYNC\u DATA”,因此条件
rootName==“mobile\u synch\u tax\r”
将永远不会为真。
var mobile_synch_tax_r = objects.SelectToken("..mobile_synch_tax_r");