Люди, мне нелегко сделать эту работу, у меня есть asmx webservice, к которому обращаются из android, и когда я отправляю json-строку в веб-сервис, метод SelectToken, который я вызываю, чтобы получить первый узел бросает NRE, но эта проблема не возникает, когда я отлаживаю код из VS, используя строку json вручную. Это происходит только тогда, когда его вызывают извне.JObject Select Token Null Reference Exception C#
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public List<ProductDetail> getAllProductsNearMeJson(String ProductRequest)
{
JObject obj = new JObject();
String products = null;
obj = JObject.Parse(ProductRequest);
JToken jtk = null;
jtk = obj.SelectToken("ProductRequest",false);
products = jtk.ToString();
var request = JsonConvert.DeserializeObject<ProductMobileRequest>(products);
//TESTE ONLY
//var request = new ProductMobileRequest();
//request.PRODUCT_LAT = "-30.1135";
//request.PRODUCT_LNG = "-51.2441";
//TESTE ONLY
var lat = request.PRODUCT_LAT;
var lng = request.PRODUCT_LNG;
List<ProductDetail> pdrList = null;
ProductMobileResponse response = new ProductMobileResponse();
try
{
response = _productService.ListMobileNearLocation(request, lat, lng);
if (response.PRODUCTS.Count > 0)
response.STATUS = true;
else
response.STATUS = false;
}
catch (Exception ex)
{
response.STATUS = false;
//response.EXCEPTION_MESSAGE = ex.Message;
}
if (response.STATUS)
{
return response.PRODUCTS;
}
else
{
return pdrList;
}
}
Я думаю, что все дело в следующем: каково значение параметра ProductRequest? –
{"ProductRequest": "{\" PRODUCT_BATHS \ ": \" \ ", \" PRODUCT_GARAGE \ ": \" \ ", \" PAGE_SIZE \ ": \" 20 \ ", \" PRODUCT_ROOMS \ ": \" \ "\ "SEARCH_TYPE \": \ "\", \ "PRODUCT_MIN_VAL \": \ "\", \ "PAGE_INDEX \": \ "1 \", \ "PRODUCT_SELLER \": \ "\", \" PRODUCT_FURNITURE \ ": \" \ "\ "продукта PRODUCT_TYPE \": \ "\", \ "PRODUCT_LNG \": \ "- 51,2434 \", \ "PRODUCT_LAT \": \ "- 30,1133 \", \" PRODUCT_MAX_VAL \ ": \" \ ", \" PRODUCT_CITY \ ": \" \ "}"} –
Можете ли вы опубликовать эту строку json внутри своего вопроса? Трудно скопировать его из комментария, потому что есть некоторые специальные символы, и неясно, исходят ли они из SO или из вашей исходной строки – Edin