javascript - 我如何只对 Javascript 对象的一部分进行 JSON 编码?

标签 javascript json javascript-objects stringify

我正在编写一个 2D 重力模拟游戏,我正在尝试添加保存/加载功能。在游戏中,我将所有当前行星存储在一个数组中。每个行星都由一个 Body 对象表示,该对象包含行星的坐标、质量和运动矢量。它还存储了行星最后 100 个坐标的数组,以便在屏幕上绘制行星的轨迹。

我想使用 JSON.stringify() 序列化行星数组。我想保存每个行星的第一个属性(质量、位置、运动),但我不需要保存最后 100 个坐标(轨迹数组)。我不想完全删除坐标,否则轨迹将从屏幕上消失。我可以只对每个对象的一部分进行字符串化吗?如果不是,我可以在编码后删除 JSON 字符串的那部分吗?或者我应该在保存过程中将坐标移动到其他地方,然后在保存后将它们复制回每个行星吗?

最佳答案

在现代网络浏览器中,您可以使用 Array#map .

var serialized = JSON.stringify(planets.map(function(planet){
  return { 
    mass: planet.mass,
    location: planet.location,
    motion: planet.motion
  };
}));

或者,等效地使用 for 循环。

关于javascript - 我如何只对 Javascript 对象的一部分进行 JSON 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14177737/

相关文章:

javascript - D3 world-50m.json 投影填充错误

javascript - 如何检查在 Javascript 中作为参数传递的回调函数是否有参数?

javascript - 请求的资源 .htaccess 上不存在 Access-Control-Allow-Origin header

javascript - Google Chrome 扩展程序 - 下载、移动和删除文件

java - 简单 JSON 意外标记 { 位置 > 1

JavaScript:从对象中删除除 1 个键之外的所有键

javascript - 限制共享变量的范围 (Javascript)

javascript - 使用 jQuery(插件?)的非 ajax GET/POST

javascript - 基于 React 中的调度循环去抖动调用

android - 如何获取开关按钮的值并存储在数据库中?