区分 JS数组 和 JOSN对象

一,数组

1. 定义一维数组:

var s1=new Array();
s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4;
alert(s1[0]);
结果为1;

 2. 定义二维素组:

var s1=new Array();
var s1=[[3,1],[2,3,4],3,[4,5,6,7,8]];
alert(s1[1][0]);
结果为2;

二,定义json对象

1. json对象

var status_process = {
     "name5" : '闲置期',
     "name1" : '播种期',
     "name2" : '苗期',
     "name3" : '生长期',
     "name4" : '采收期'
}   
alert(status_process);
结果为:Object:Object;


2. json字符串

所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象,比如:

var s1="{";
var s2 = " 'name5' : '闲置期',   'name1' : '播种期','name2' : '苗期','name3' : '生长期','name4' : '采收期'";
var s3="}";
var  status_process=s1+s2 +s3;
虽然status_process的值符合json对象的格式,但是它不是对象,只是一个字符串(是拼凑出来的);
将字符串转换为json对象使用函数eval(),eval("(" + status_process+ ")");
结论:从后台传入到前台的是json字符串,不是真正的json对象,因此需要使用eval函数转换。

3. json对象的使用

var status_process = {
    name5 : '闲置期',
    name1 : '播种期',
    name2 : '苗期',
    name3 : '生长期',
    name4 : '采收期'
};
alert(status_process["name5"]);
alert(status_process.name5);

两个都为:闲置期

4,json二维对象        
var status_process = {
     name5 : {name3:'空闲闲置期'},
     name1 : '播种期',
     name2 : '苗期',
     name3 : '生长期',
     name4 : '采收期'
    };
alert(status_process["name5"]["name3"]);
alert(status_process.name5.name3);

结果都为:'空闲闲置期'


转:http://www.cnblogs.com/linda586586/archive/2012/04/17/2454212.html

要将C语言中的结构体数组转换为JSON格式,你可以使用第三方库,如 cJSON 或 Jansson。 以下是使用 cJSON 库的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <cJSON.h> typedef struct { char name[50]; int age; double salary; } Employee; int main() { // 创建一个包含多个 Employee 结构体的数组 Employee employees[3]; strcpy(employees[0].name, "John Doe"); employees[0].age = 30; employees[0].salary = 5000.0; strcpy(employees[1].name, "Jane Smith"); employees[1].age = 35; employees[1].salary = 6000.0; strcpy(employees[2].name, "Mike Johnson"); employees[2].age = 40; employees[2].salary = 7000.0; // 创建一个 JSON 数组 cJSON *root = cJSON_CreateArray(); // 遍历结构体数组,将每个结构体转换为 JSON 对象,并添加到 JSON 数组中 for (int i = 0; i < 3; i++) { cJSON *employeeObj = cJSON_CreateObject(); cJSON_AddStringToObject(employeeObj, "name", employees[i].name); cJSON_AddNumberToObject(employeeObj, "age", employees[i].age); cJSON_AddNumberToObject(employeeObj, "salary", employees[i].salary); cJSON_AddItemToArray(root, employeeObj); } // 将 JSON 数组转换为字符串 char *jsonStr = cJSON_Print(root); // 打印 JSON 字符串 printf("%s\n", jsonStr); // 释放内存 cJSON_Delete(root); free(jsonStr); return 0; } ``` 注意,上述示例代码需要先安装 cJSON 库,并在编译时链接该库。编译命令如下: ```bash gcc example.c -o example -lcjson ``` 执行编译后的可执行文件将输出转换后的JSON字符串。 你可以根据自己的需求修改结构体数组和对应的JSON字段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值