gpt4 book ai didi

c#-4.0 - 如何从 JSON 字符串中删除转义字符

转载 作者:行者123 更新时间:2023-12-04 15:57:35 24 4
gpt4 key购买 nike

我调用了一个 REST API,返回了以下 JSON 字符串:

"{\"profile\":[{\"name\":\"city\",\"rowCount\":1,\"location\": ............

在反序列化之前,我尝试使用以下代码删除转义字符:
 jsonString = jsonString.Replace(@"\", " ");

但是当我反序列化它时,它会抛出一个 input string was not in a correct format :
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);

以下是完整代码:
public static SearchRootObject obj()
{
String url = Glare.searchUrl;
string jsonString = "";

// Create the web request
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

// Get response
var response = request.GetResponse();
Stream receiveStream = response.GetResponseStream();

// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
jsonString = jsonString + readStream.ReadToEnd();
jsonString = jsonString.Replace(@"\", " ");

// A C# object representation of deserialized JSON string
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);
return obj;
}

最佳答案

切换使用后JavaScriptSerializer()为了反序列化 JSON 字符串,我意识到我有一个 int类型 property在我的对象中用于 JSON 字符串中的十进制值。我改了intdouble ,这解决了我的问题。两者 JsonConvert.DeserializeObject<>JavaScriptSerializer()处理转义字符。无需删除转义字符。
我替换了以下代码:

jsonString = jsonString.Replace(@"\", " ");        
SearchRootObject obj = JsonConvert.DeserializeObject<SearchRootObject>(jsonString);
return obj;

和:
return new JavaScriptSerializer().Deserialize<SearchObj.RootObject>(jsonString);

关于c#-4.0 - 如何从 JSON 字符串中删除转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com