怎么将list集合转换为json数组

怎么将list集合转换为json数组,第1张

不懂你什么意思。

url接口去访问数据是访问一般处理程序如果是:

把你得到list集合转成json,直接ResponseWrite(json);

不会转json,OK 引用Newtonsoft(网上下个dll)

用var json = JsonConvertSerializeObject(list);

JSON(全称为JavaScript Object Notation)

是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。

JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生

成。

JSON与XML的比较

◆可读性

JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解。

◆文件大小与传输

XML允许使用方便的标签,所以文件尺寸是要比JSON大的。而且JSON源于Javascript,所以天生的主战场是Javascript与网络,在这里,JSON有着XML无法赶超的优势。

JSON语法

1 JSON 语法是 JavaScript 对象表示法语法的子集。

•数据在名称/值对中:名称是字符串,使用双引号表示。值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null。

•数据由逗号分隔:

•花括号保存对象:对象可以包含各种数据,包括数组。

•方括号保存数组:数字可以包含对象。

例如:

{

"employees": [

{

"firstName": "Bill",

"lastName": "Gates"

},

{

"firstName": "George",

"lastName": "Bush"

}

]

}

2 如果JSON中含有转义字符,则需要转义。例如文件路径中需要使用"\\"而不是"\"。例如:{ "file":"C:\\atxt"}。

NET *** 作JSON

JSON文件读入到内存中就是字符串,NET *** 作JSON就是生成与解析JSON字符串。 *** 作JSON通常有以下几种方式:

1 原始方式:自己按照JSON的语法格式,写代码直接 *** 作JSON字符串。如非必要,应该很少人会走这条路,从头再来的。

2 通用方式:这种方式是使用开源的类库NewtonsoftJson(下载地址>

首先楼主的json数据有问题。

下面代码亲测,可用,两个文件放在同级目录:

Testjava

public class Test {

    public static void main(String[] args) {

ConvertXMLtoJSON();

String jStr = "{\"users\": {\"user\": ["

+ "{\"uid\": \"1\", \"node_id\": \"2\",\"children\": [{\"id\": \"43\",\"value\": \"14\"},{\"id\": \"44\",\"value\": \"15\"}]},"

+ "{\"uid\": \"2\",\"node_id\": \"2\",\"children\": [{\"id\": \"45\",\"value\": \"11\"},{\"id\": \"46\",\"value\": \"11\"},{\"id\": \"47\",\"value\": \"16\"}]},"

+ "{\"uid\": \"3\",\"node_id\": \"2\",\"children\": {\"id\": \"48\",\"value\": \"11\"}}]}"

+ "}";

Systemoutprintln(jsontoXml(jStr));

    }

    public static String jsontoXml(String json) {

try {

    XMLSerializer serializer = new XMLSerializer();

    JSON jsonObject = JSONSerializertoJSON(json);

    return serializerwrite(jsonObject);

}catch (Exception e) {

    eprintStackTrace();

}

return null;

    }

    public static void ConvertXMLtoJSON() {

InputStream is = TestclassgetResourceAsStream("samplexml");

String xml;

try {

    xml = IOUtilstoString(is);

    Systemoutprintln(xml);

    XMLSerializer xmlSerializer = new XMLSerializer();

    JSON json = xmlSerializerread(xml);

    Systemoutprintln(jsontoString(1));

}catch (IOException e) {

    eprintStackTrace();

}

    }

}

samplexml

<xml version="10" encoding="utf-8">

<o>

    <users class="object">

        <user class="array">

            <e class="object">

                <children class="array">

                    <e class="object">

                        <id type="string">43</id>

                        <value type="string">14</value>

                    </e>

                    <e class="object">

                        <id type="string">44</id>

                        <value type="string">15</value>

                    </e>

                </children>

                <node_id type="string">2</node_id>

                <uid type="string">1</uid>

            </e>

            <e class="object">

                <children class="array">

                    <e class="object">

                        <id type="string">45</id>

                        <value type="string">11</value>

                    </e>

                    <e class="object">

                        <id type="string">46</id>

                        <value type="string">11</value>

                    </e>

                    <e class="object">

                        <id type="string">47</id>

                        <value type="string">16</value>

                    </e>

                </children>

                <node_id type="string">2</node_id>

                <uid type="string">2</uid>

            </e>

            <e class="object">

                <children class="object">

                    <id type="string">48</id>

                    <value type="string">11</value>

                </children>

                <node_id type="string">2</node_id>

                <uid type="string">3</uid>

            </e>

        </user>

    </users>

</o>

jar包下载地址参考:>

对比

准备数据

实体类:

定义:

使用DataContractJsonSerializer

帮助类:

用法:

输出:

使用JavaScriptSerializer

// using SystemWebScriptSerialization;

   

 

var jser    = new JavaScriptSerializer();

 

var json    = jserSerialize(new List<Person>() { p1, p2 });

 

var persons = jserDeserialize<List<Person>>(json);

使用Silverlight

使用JSONNET

输出:

LINQ:

其他:

输出:

一、数组转字符串

需要将数组元素用某个字符连接成字符串,示例代码如下:

var a, b;

a = new Array(0,1,2,3,4);

b = ajoin("-");

二、字符串转数组

实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:

var s = "abc,abcd,aaa";

ss = ssplit(",");// 在每个逗号(,)处进行分解。

如果是js中遍历使用

var anObject = {one:1,two:2,three:3};//对json数组each

$each(anObject,function(name,value) {

});

如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以

//遍历json数组

String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";

jsonObjSplit = new JSONObject(json1);

JSONArray ja = jsonObjSplitgetJSONArray("data");

for (int i = 0; i < jalength(); i++) {JSONObject jo = (JSONObject) jaget(i);Systemoutprintln(joget("name"));}

//JSONObject遍历json对象

String json2 = "{name:'Wallace',age:15}";

jsonObj = new JSONObject(json2);

for (Iterator iter = jsonObjkeys(); iterhasNext();) {String key = (String)iternext();Systemoutprintln(jsonObj getString(Key));}

在net 20中提取这样的json

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}

引用命名空间

using NewtonsoftJson;

using NewtonsoftJsonLinq;

可以把上面的JSON看成一个对象你只要写对应的类即可

public class UserInfo

{

public string name;

public int age;

public address addr;

}

public class address

{

public string city;

public string province;

}

然后在解析的地方这样写:

string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";

UserInfo user=(UserInfo)JsonConvertDeserializeObject(jsonData, typeof(UserInfo));

得到City的值只要:useraddrCity;

这样实现也行

JObject jsonObj = JObjectParse(jsonData);

string name=jsonObj ["name"]ToString();

string age=jsonObj ["age"]ToString();

string city=((JObject )jsonObj ["addr"])["city"]ToString();

string province=((JObject )jsonObj ["addr"])["province"]ToString();

如 何这个json是动态的呢?譬如让你输入一个json,如{"name":"lily","age":23,"addr": {"city":guangzhou,"province":guangdong}}; 然后让你输入一个对象,如city,然后系统会输出guangzhou这个值,那这样的话,json就是动态生成的了,我想了解有没有读取这样的json 的方法。(注意,json是多级嵌套的。)

就用遍历

public string GetJsonValue(JEnumerable<JToken> jToken,string key)

{

IEnumerator enumerator = jTokenGetEnumerator();

while (enumeratorMoveNext())

{

JToken jc = (JToken)enumeratorCurrent;

if (jc is JObject||((JProperty)jc)Value is JObject)

{

return GetJsonValue(jcChildren(), key);

}

else

{

if (((JProperty)jc)Name == key)

{

return ((JProperty)jc)ValueToString();

}

}

}

return null;

}

在调用的时候:

string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";

JObject jsonObj = JObjectParse(jsonData);

ResponseWrite(GetJsonValue(jsonObjChildren(), "province"));

如果有多层嵌套的数组

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";

JObject jsonObj = JObjectParse(jsonData);

JArray jar = JArrayParse(jsonObj["addr"]ToString());

JObject j = JObjectParse(jar[0]ToString());

ResponseWrite(j["city"]);

JSON转XML

string xmlstr=((XmlDocument)JsonConvertDeserializeXmlNode(jsonData))InnerXmlToString();

以上就是关于怎么将list集合转换为json数组全部的内容,包括:怎么将list集合转换为json数组、C#怎么取带嵌套的格式一致的JSON、【高分求助】java 中 数组格式的 json 怎么转成 xml等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9547768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存