需要用C# .net做一个接口:数据库查询出ID,Name然后转换成JOSN格式,返回给调用的就可以。从来没有做过接口,对josn也不是很熟悉,自己尝试简单写了点,各位大侠帮忙看看,有类似例子的是否可以发给我参考参考,不胜感激。以下是我写的一些代码,希望可以用URL的形式调用,我返回JOSN格式的数据就行,给点意见:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MII.DAL;
using System.Data.SqlClient;
using MII.Web.Class;
using System.Text.RegularExpressions;
using System.Security.Cryptography;namespace MII.Web.json
{
    interface Interface1             //创建接口  不知道这样写对不对
    {
        public string SelectArea()
        {
            string text = "";
            string sql = "SELECT  i.SID, i.nIName, s.sPID  FROM NodeInfo AS i LEFT OUTER JOIN NodeStruct AS s ON i.SID = s.SID";    //查询数据库
            DataTable dt = new DataTable();
            try
            {
                dt = DBOperators.SelectTable(sql);
                if (dt.Rows.Count != 0)
                {                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        text += "{'ID':'"+dt.Rows[i]["SID"].ToString().Trim()+"','name':'"+dt.Rows[i]["nIName"].ToString().Trim()+"'},";   //将数据转换成JOSN格式  是否正确?                    }                }            }
            catch (Exception ex)
            {                throw ex;
            }            //Response.Write(text);    想返回到请求的URL  这样写对吗?
        }
    }
}

解决方案 »

  1.   

    为什么不直接用json的序列号和反序列号呢
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;using System.Web.Script.Serialization;
    using System.Runtime.Serialization.Json;
    using System.IO;namespace JD_EDM.EmailService.Utility.Serialize
    {
        public class Json
        {
            public static string Serialize(Object model)
            {
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                string strJson = javaScriptSerializer.Serialize(model);
                return strJson;
            }        public static T Deserialize<T>(string json)
            {
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                T model = javaScriptSerializer.Deserialize<T>(json);
                return model;
            }
        }
    }
      

  2.   

    在。net里有相应的json插件,你可以吧json的dll引用到项目里,他们有一个专门的方法转义json格式的,好像是JavaScriptConvert.SerializeObject(“可以放集合也可以是datsset”);
    这样类似的方法,你自己手写与不一定写的对。我建议你下载一个。
      

  3.   

    http://nonocast.cn/object-serializer/
      

  4.   

     string content = "{\"total\":" + dt.Rows.Count + ",\"rows\":[";            for (int i = 0; i < dt.Rows.Count; i++)
                {
                    content += "{\"idXl\":\"" + dt.Rows[i]["idXl"].ToString() + "\",";
                    content += "\"id_Da\":\"" + dt.Rows[i]["id_Da"].ToString() + "\",";
                    content += "\"xz\":\"" + dt.Rows[i]["xz"].ToString() + "\",";
                    content += "\"zy\":\"" + dt.Rows[i]["zy"].ToString() + "\"},";            }            content = content.TrimEnd(',') + "]}";