Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
628 views
in Technique[技术] by (71.8m points)

c# - JsonConvert.DeserializeObject and "d" wrapper in WCF

By default WCF service wrap JSON response in "d" wrapper and there I found a problem with parsing it.

If I parse with JsonConvert.DeserializeObject(response) where response is

"{"d":"{"a0b70d2f-7fe4-4aa2-b600-066201eab82d":"Thelma","d56d4d4f-6029-40df-a23b-de27617a1e43":"Louise"}"}"

I gor an Error:

After parsing a value an unexpected character was encoutered: a. Line 1, position 9.

If I change response into

"{"a0b70d2f-7fe4-4aa2-b600-066201eab82d":"Thelma","d56d4d4f-6029-40df-a23b-de27617a1e43":"Louise"}"

I got it working.

So how to parse this "d" wrapped JSON responses from WCF services? Is there any better way to parse JSON?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I'm assuming you are using <enableWebScript/> in your behavior config, replace that with <webHttp defaultOutgoingResponseFormat="Json"/> and you will get nice and clean json, no "d" and no "__type"


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...