将JSON字符串从Python解析为.NET C#WPF

将JSON字符串从Python解析为.NET C#WPF,c#,python,.net,json,wpf,C#,Python,.net,Json,Wpf,我对这方面还不太熟悉,所以非常感谢您的帮助。我有两段代码,其中有一个缺少的链接,我希望有人可以填写。我对这两个平台都是新手,对后端和web架构都没有太多经验 下面是第一段代码,它是一个经过修改的python服务器,当我进入浏览器时,它向我显示了一个格式化的JSON字符串。这太棒了。这就是我想看到的 #!/usr/bin/python """ Save this file as server.py >>> python server.py 0.0.0.0 8001 servin

我对这方面还不太熟悉,所以非常感谢您的帮助。我有两段代码,其中有一个缺少的链接,我希望有人可以填写。我对这两个平台都是新手,对后端和web架构都没有太多经验

下面是第一段代码,它是一个经过修改的python服务器,当我进入浏览器时,它向我显示了一个格式化的JSON字符串。这太棒了。这就是我想看到的

#!/usr/bin/python

"""
Save this file as server.py
>>> python server.py 0.0.0.0 8001
serving on 0.0.0.0:8001

or simply

>>> python server.py
Serving on localhost:8000

You can use this to test GET and POST methods.

"""

import SimpleHTTPServer
import SocketServer
import logging
import cgi
import sys
import json
import simplejson
import time


if len(sys.argv) > 2:
    PORT = int(sys.argv[2])
    I = sys.argv[1]
elif len(sys.argv) > 1:
    PORT = int(sys.argv[1])
    I = ""
else:
    PORT = 8000
    I = ""


current_milli_time = lambda: int(round(time.time() * 1000))

class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):

    def do_GET(self):
        logging.warning("======= GET STARTED =======")
        logging.warning(self.headers)
        SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

    def do_POST(self):
        logging.warning("======= POST STARTED =======")
        logging.warning(self.headers)

        data_string = self.rfile.read(int(self.headers['Content-Length']))
        #print "data_string: "
        #print data_string
        data = simplejson.loads(data_string)
        #print "json data: "
        #print data

        response = {}
        response = {"time": current_milli_time()}

        # Send a repsonse
        self.send_response(200)
        self.send_header("Content-type", "application/json")
        self.end_headers()
        self.wfile.write(json.dumps(data))



Handler = ServerHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "@rochacbruno Python http server version 0.1 (for testing purposes only)"
print "Serving at: http://%(interface)s:%(port)s" % dict(interface=I or "localhost", port=PORT)
httpd.serve_forever()
我有一个WPF/C#应用程序,其中包含一个后台工作程序,我以前使用它从REST服务获取JSON字符串

public void getData(object sender, DoWorkEventArgs e)
{
    BackgroundWorker worker = sender as BackgroundWorker;

    var url = "http://localhost:xxxx/";
    var syncClient = new WebClient();

    while (true)
    {
        if ((worker.CancellationPending == true))
        {
            e.Cancel = true;
            break;
        }
        else
        {
            System.Threading.Thread.Sleep(100);
            var content = syncClient.DownloadString(url);
            Console.WriteLine(content);
        }
    }
}
因此,我非常需要一些关于如何继续的指导,如何将JSON字符串放入我的WPF/C应用程序中?我希望这是足够清楚,让我知道如果你需要更多的信息

编辑:我有一种感觉,我需要将当前的python服务器发布到另一个RESTful服务器,然后通过HTTP获取JSON字符串


干杯

这一行后面的
content
值是多少
var content=syncClient.DownloadString(url)
?将JSON转换为C#object:@ArghyaC如果我将
localhost:8000
分配给
var url
,它只会返回html标记,没有JSON字符串。@Gilang问题是我在C#应用程序中没有得到JSON字符串。python服务器似乎只在POST时响应JSON,而没有得到JSON,我不明白你的浏览器为什么显示JSON。这行后面的
content
值是多少
var content=syncClient.DownloadString(url)
?将JSON转换为C#object:@ArghyaC如果我将
localhost:8000
分配给
var url
,它只会返回html标记,没有JSON字符串。@Gilang问题是我在C#应用程序中没有得到JSON字符串。python服务器似乎只在POST时响应JSON,而没有得到JSON,我不明白你的浏览器为什么显示JSON。